我要删除以下数据:实际的var data = [ ['dupeValue', { data: 123 }], ['dupeValue', { data: 123 }], ['otherValue', { data: 1111111 }], ['dupeValue', { data: 123 }]]预期的var data = [ ['dupeValue', { data: 123 }], ['otherValue', { data: 1111111 }]]我尝试了以下操作,但不起作用:data.filter((value, i, arr) => { return value[0] !== arr[i][0]})// outputs []我想念什么?var data = [ ['dupeValue', { data: 123 }], ['dupeValue', { data: 123 }], ['otherValue', { data: 1111111 }], ['dupeValue', { data: 123 }]]var result = data.filter((value, i, arr) => { return value[0] !== arr[i][0]})console.log(result)
2 回答

慕尼黑8549860
TA贡献1818条经验 获得超11个赞
您可以使用reduce()映射到对象并Object.values()获取结果数组
var data = [
['dupeValue', { data: 123 }],
['dupeValue', { data: 123 }],
['otherValue', { data: 1111111 }],
['dupeValue', { data: 123 }]
]
var result = Object.values(data.reduce((a, c) => (a[c[0]] = c, a), {}))
console.log(result)
添加回答
举报
0/150
提交
取消