js将一个数组根据某值拆分成多个数组

用js的reduce方法,reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。

语法:

arr.reduce(callback,[initialValue])
//callback (执行数组中每个值的函数,包含四个参数)

previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
currentValue (数组中当前被处理的元素)
index (当前元素在数组中的索引)
array (调用 reduce 的数组)
initialValue (作为第一次调用 callback 的第一个参数。)

使用方法

var a = [
        {name:'222',id:1,test:'啊啊啊'},
        {name:'44123',id:5,test:'啊啊啊'},
        {name:'54',id:1,test:'笑嘻嘻'},
        {name:'45',id:5,test:'啊啊啊'},
        {name:'431',id:1,test:'水电费'},
        {name:'62',id:4,test:'阿萨德'},
        {name:'222',id:1,test:'啊啊啊'},
        {name:'54',id:4,test:'的的撒'},
        {name:'76',id:1,test:'爱迪生'},
    ];
    let result = a.reduce(function(initArray,item,xindex,array){
        //initArray 初始值 或者是上一次调用返回的值
        //item 数组中当前被处理的元素
        //xindex 当前元素的下标
        //array 被reduce的数组  即上面代码中的数组a
        let index = item.test;
        if(initArray[index]){
            initArray[index].push(item)
        } else {
            initArray[index] = [item]
        }
        return initArray
    },[]);
    console.log(result)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容