首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何过滤数组?

如何过滤数组?
EN

Stack Overflow用户
提问于 2016-11-28 16:43:04
回答 1查看 9.6K关注 0票数 3

我有一个二维数据数组(让我们调用变量arr),它表示一个包含各种字段的表:

代码语言:javascript
运行
复制
     [1]   [2]   [3]   [4]   
[1],Fruit,Apple,Red,10  
[2],Fruit,Apple,Green,20  
[3],Berry,Strawberries,Red,5  
[4],Tuber,Potato,Yellow,2  

在本例中,我需要按第3列=红色(我不想在所有表中搜索arr变量,仅在第3列中)过滤该变量,以获得以下结果:

代码语言:javascript
运行
复制
    [1]   [2]   [3]   [4]   
[1],Fruit,Apple,Red,10  
[2],Berry,Strawberries,Red,5 

如何将.filter函数应用于2D数组,以便对单个字段/列进行筛选?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-28 16:51:10

ECMAScript 6

代码语言:javascript
运行
复制
let filtered = arr.filter(dataRow => dataRow[2] === 'Red');

正如@ozeebee所指出的,ES6目前在中不受支持,因此您应该尝试以下操作:

ECMAScript 5

代码语言:javascript
运行
复制
var filtered = arr.filter(function (dataRow) {
  return dataRow[2] === 'Red';
});

在注释中,“经典方式”指的是ES5方法。

解释

.filter函数接受一个参数,它是对一个函数的回调,如果数组条目应该保持不变,则返回true;如果应该删除,则返回false,这就是过滤。在这种情况下,我们应该检查表行的第三列是否等于Red。代码:return dataRow[2] === 'Red'等于:

代码语言:javascript
运行
复制
if (dataRow[2] === 'Red') {
  return true;
} else {
  return false;
}

因为比较的结果是布尔值。

另请参阅

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40849369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档