Javascript删除多数组中的冗余

标签 javascript html multidimensional-array

需要有关在 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/

相关文章:

javascript - 谷歌地图列表类似于 Airbnb

javascript - 将增量值分配给 knockout 中动态生成的复选框

Javascript:将多维数组展平为唯一路径数组

c - 如何在结构中分配固定大小的二维数组?

javascript - 指定正确的类来添加 Jquery 类

javascript - 重定向到另一个页面而不在 jquery 中加载当前页面

html - 如何使用 CSS 动画在方形路径中的 div 中移动文本?

c++ - 在 C++ 中从多维 vector 创建和获取值的问题

javascript - Javascript 中大量计算的最佳实践?

javascript - 如何将带有只读列的可编辑表插入到angular js的选项卡 View 中