如何在多维数组上使用 FILTER 来检索唯一值?

Aja*_*bhi 1 javascript arrays multidimensional-array google-apps-script

我看过与此类似的其他问题,但没有看到适合我想做的事情的答案。

我有一个多维数组:

var arr = [
["apple","ghana",15],
["apple","brazil",16],
["orange","nigeria",10],
["banana","ghana",6]
]
Run Code Online (Sandbox Code Playgroud)

我想通过仅查看包含水果名称的第一列来过滤数组并返回唯一值的数组。所以它看起来像这样:

var uniqueArr = [
["apple","ghana",15],
["orange","nigeria",10],
["banana","ghana",6]
]
Run Code Online (Sandbox Code Playgroud)

我想提供一个可以做到这一点的函数。我努力了:

    function isUnique (rows,index,self) {
      return self.indexOf(rows) === index
    }
Run Code Online (Sandbox Code Playgroud)

但这没有用。任何帮助,将不胜感激!

Saj*_*med 5

用于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);
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper {
  min-height: 100% !important;
  top: 0;
}
Run Code Online (Sandbox Code Playgroud)