d4r*_*4rk 3 arrays filter multidimensional-array google-apps-script
我有这个 2D 数据数组(我们称之为变量arr),它代表一个包含各种字段的表:
[1] [2] [3] [4]
[1],Fruit,Apple,Red,10
[2],Fruit,Apple,Green,20
[3],Berry,Strawberries,Red,5
[4],Tuber,Potato,Yellow,2
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我需要按第arr3 列 = Red过滤变量(我不想在所有表中搜索 Red,仅在第 3 列中)获得:
[1] [2] [3] [4]
[1],Fruit,Apple,Red,10
[2],Berry,Strawberries,Red,5
Run Code Online (Sandbox Code Playgroud)
如何将 .filter 函数应用于二维数组以过滤单个字段/列?
let filtered = arr.filter(dataRow => dataRow[2] === 'Red');
Run Code Online (Sandbox Code Playgroud)
正如@ozeebee 所指出的,Google App Scripts 目前不支持 ES6,因此您应该尝试以下操作:
var filtered = arr.filter(function (dataRow) {
return dataRow[2] === 'Red';
});
Run Code Online (Sandbox Code Playgroud)
在评论中,“经典方式”指的是 ES5 方法。
.filterfunction 接受一个参数,该参数是一个函数的回调,该函数返回true是否应保留数组条目或false是否应删除数组条目,这就是过滤。在这种情况下,我们应该检查表行的第三列是否等于Red。代码:return dataRow[2] === 'Red'等于:
if (dataRow[2] === 'Red') {
return true;
} else {
return false;
}
Run Code Online (Sandbox Code Playgroud)
因为比较的结果是一个布尔值。
| 归档时间: |
|
| 查看次数: |
8243 次 |
| 最近记录: |