使用 javascript 过滤二维数组

Cod*_*Guy 1 javascript arrays multidimensional-array

我有一个 2D 数组,我需要过滤具有日期字段(3d 列)的行

var data = [
['1','a','12-12-2019','A'],
['2','b','','A'],
['3','c','12-1-2019','A'],
['4','d','','A'],
];
Run Code Online (Sandbox Code Playgroud)

预期结果是

result = [
['1','a','12-12-2019','A'],
['3','c','12-1-2019','A'],
];
Run Code Online (Sandbox Code Playgroud)

使用 for 循环进行比较是耗时的,有没有最快的方法来检索?

Tal*_*ren 7

我不担心使用循环来做到这一点 - 这就是循环的用途。

您可以使用Array.prototype.filter()来确保每个数组的第二个位置都有一个值,并返回它是否为真。

var data = [
  ['1','a','12-12-2019','A'],
  ['2','b','','A'],
  ['3','c','12-1-2019','A'],
  ['4','d','','A'],
];

// You're using a Google Apps script, so this is ES5
const result = data.filter(function(item) {
  return item[2];
});

console.log(result);
Run Code Online (Sandbox Code Playgroud)