需要有关在 javascript 中处理多维数组的帮助。 示例数组如下: 开始、结束时间、名称。
[04/04/2017 11:00:42,04/04/2018 12:15:37,Nic],
[04/04/2017 11:00:42,04/04/2018 12:16:58,Nic]
结果是这样的:
[04/04/2017 11:00:42,04/04/2018 12:16:58,Nic]
我们需要比较 2 个索引,第一个索引和最后一个索引如果匹配,然后是第二个索引,因为结束时间将从最后一个数组中获取。
下面的示例代码用于删除冗余。但是,当需要比较超过 1 个索引并将最后一条记录作为结果时,会造成混淆。
var compare = new Array();var result = new Array();
for (var y = 0; y < list.size(); y++) {
if(list.indexOf(list[y][0]) < 0){
compare.push(listdetails[y][0]);
result.push(listdetails[y]);
}
}
有人可以帮忙吗?
最佳答案
一种选择是使用reduce
将数据汇总到一个对象中。使用 Object.values
将对象转换为数组。
var arr = [
['04/04/2017 11:00:42', '04/04/2018 12:15:37', 'Nic'],
['04/04/2017 11:00:42', '04/04/2018 12:16:58', 'Nic'],
['04/04/2017 11:00:42', '04/04/2018 12:16:50', 'Apple']
];
var result = Object.values(arr.reduce((c, v) => Object.assign(c, {[v[0]+v[2]]: v}), {}));
console.log(result);
关于Javascript删除多数组中的冗余,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49667515/