首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >同时映射和过滤一个数组

同时映射和过滤一个数组
EN

Stack Overflow用户
提问于 2015-12-21 22:43:14
回答 7查看 201.6K关注 0票数 236

我有一个要迭代的对象数组,以生成一个新的过滤数组。但是,我还需要根据参数从新数组中过滤出一些对象。我试着这样做:

代码语言:javascript
复制
function renderOptions(options) {
    return options.map(function (option) {
        if (!option.assigned) {
            return (someNewObject);
        }
    });   
}

这是一种好的方法吗?有没有更好的方法?我对使用任何库都是开放的,比如lodash。

EN

回答 7

Stack Overflow用户

发布于 2015-12-21 22:52:22

使用reduce,Luke!

代码语言:javascript
复制
function renderOptions(options) {
    return options.reduce(function (res, option) {
        if (!option.assigned) {
            res.push(someNewObject);
        }
        return res;
    }, []);   
}
票数 56
EN

Stack Overflow用户

发布于 2017-06-14 19:59:20

使用ES6,您可以非常简短地完成此操作:

options.filter(opt => !opt.assigned).map(opt => someNewObject)

票数 37
EN

Stack Overflow用户

发布于 2018-04-26 21:22:30

这里有一行带有ES6花式spread syntaxreduce

代码语言:javascript
复制
var options = [
  { name: 'One', assigned: true }, 
  { name: 'Two', assigned: false }, 
  { name: 'Three', assigned: true }, 
];

const filtered = options
  .reduce((result, {name, assigned}) => [...result, ...assigned ? [name] : []], []);

console.log(filtered);

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

https://stackoverflow.com/questions/34398279

复制
相关文章

相似问题

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