求教各位大神,js如何将下面的数组根据前面3个元素进行分类组装!!!

JavaScript015

求教各位大神,js如何将下面的数组根据前面3个元素进行分类组装!!!,第1张

var array =

[

[0,1,"src",{"datatime":201705230201}],

[1,1,"dst",{"datatime":201705230205}],

[0,1,"src",{"datatime":201705230202}],

[1,1,"dst",{"datatime":201705230206}],

[0,1,"dst",{"datatime":201705230204}],

[1,1,"src",{"datatime":201705230207}],

[0,1,"dst",{"datatime":201705230203}],

[1,1,"src",{"datatime":201705230208}]

]

var result = [], tmp = {}

for(var i=0i<array.lengthi++){

var ai = array[i]

var key = ""

for(var j=0j<3j++){

key += ai[j]

}

if(!tmp[key]){

var arr = []

for(var j=0j<3j++){

arr.push(ai[j])

}

arr.push([ai[3]])

tmp[key] = arr

}else{

var dt = tmp[key][3]

dt.push(ai[3])

}

}

for(var p in tmp){

result.push(tmp[p])

}

array = result

console.log(array)

js获取数组中的一部分元素,有2种方法:slice和filter函数,下面分别介绍。

slice

slice的定义和用法如下,用于截取数组的一段

执行

var arr = [1,2,3,4,5]

arr.slice(1,4)

这2行代码,可以看到截取了1到4下标的代码

filter

filter则用于过滤数组中的一部分元素,剩下的元素就是需要的那部分元素。

现在尝试下面代码,可以将一个数字数组中的偶数过滤掉,只留下奇数。

var arr = [1,2,3,4,5]

arr.filter(e=>e%2==0)