javascript - 如何在多维数组上使用 FILTER 来检索唯一值?
问题描述
我已经查看了与此类似的其他问题,但没有看到与我正在尝试做的事情相符的答案。
我有一个多维数组:
var arr = [
["apple","ghana",15],
["apple","brazil",16],
["orange","nigeria",10],
["banana","ghana",6]
]
我想通过仅查看包含水果名称的第一列并返回唯一值数组来过滤数组。所以它看起来像这样:
var uniqueArr = [
["apple","ghana",15],
["orange","nigeria",10],
["banana","ghana",6]
]
我想提供一个功能来做到这一点。我努力了:
function isUnique (rows,index,self) {
return self.indexOf(rows) === index
}
但它没有用。任何帮助,将不胜感激!
解决方案
用于reduce
获取结果。
var arr = [["apple","ghana",15],["apple","brazil",16],["orange","nigeria",10],["banana","bangladesh",20],["banana","ghana",6]];
const res = arr.reduce((a, c) => {
if (!a.find(v => v[0] === c[0])) {
a.push(c);
}
return a;
}, []);
console.log(res);
.as-console-wrapper {
min-height: 100% !important;
top: 0;
}