热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Javascript过滤数组中的值

如何解决《Javascript过滤数组中的值》经验,为你挑选了1个好方法。

我有一个数组数组,每个数组包含两个元素.如何通过过滤第一个元素从数组中返回第二个元素?

例如,我有以下数组,我的函数应该返回第一个项目所在的每个子数组的第二个元素8:

var array = [[8, 'first'], [8, 'second'], [1, 'empty'], [8, 'third'], [9, 'empty']];

预期结果: ['first', 'second', 'third']

这是我到目前为止实现的,但它返回两个元素而不是每个数组中的第二个元素匹配...

var array = [[8, 'first'], [8, 'second'], [1, 'empty'], [8, 'third'], [9, 'empty']];
var result = array.filter(function(item){
  if(item[0] == 8) {
    return item[1];
  }
});
console.log(result);



1> Nina Scholz..:

您可以使用条件进行过滤,然后您只需要映射您想要的部分.

在单个循环中,只能使用Array#reduce,因为在这里您可以操作结果集的值.

Array#filter 返回数组的原始项,而不更改任何内容.

filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素.

对于过滤,回调需要返回一个被解释为boolean的值,这意味着每个truthy值(如对象,数组或任何非零数字等)都会获取结果集的项.

如果你只想使用内部数组的一部分并且该部分是一个truty值,那么过滤可以工作,但它不会获取返回值,因为它不是为此而设的.

var array = [[8, 'first'], [8, 'second'], [1, 'empty'], [8, 'third'], [9, 'empty']],
    result = array.filter(function(item){
        return item[0] === 8;
    }).
    map(function (a) {
        return a[1];
    });

console.log(result);

推荐阅读
author-avatar
脸皮乃身外之物
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有