我有这个 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 函数应用于二维数组以过滤单个字段/列?
我有一个Google电子表格,它是2列表格,在A列上有日期(我确定是日期,并且所有date函数在所有列上都可以正常工作)和在B列文字上。
使用谷歌应用程序脚本,我得到了范围的所有值:
var sheet = SpreadsheetApp.openById(".........");
var ss = sheet.getSheetByName(".......");
var range =ss.getRange(1,1,ss.getLastRow(),ss.getLastColumn());
var data = range.getValues();
Run Code Online (Sandbox Code Playgroud)
现在我应该有一个二维数组,日期为data [0],文本为data [1]
我可以使用以下方法过滤data [1]上的数组:
var filter = data.filter(function (dataRow) {
return dataRow[1] == 'sometext';
});
Run Code Online (Sandbox Code Playgroud)
我需要的是按某个日期值(例如年,月或周期)过滤data [0]
我试过了:
var filter = data.filter(function (dataRow) {
return dataRow[0].getFullYear == 2016;
});
Run Code Online (Sandbox Code Playgroud)
但是任何类型的日期函数都会给我一个错误,指出无法在对象中找到该函数(例如getFullYear())。
我究竟做错了什么?
感谢您的帮助
最好的祝福