javascript – 下划线相当于_.pick的数组

我明白pick是用来获取一个只有指定属性的对象:
_.pick({name: 'moe',age: 50,userid: 'moe1'},'name','age');
=> {name: 'moe',age: 50}

我如何在数组上执行相同的操作,比如说我有一个数组,例如:

[{name: 'moe1',{name: 'moe2',{name: 'moe3',userid: 'moe1'}]

我想将其映射到一个数组,以便仅包含名称和年龄属性,如:

[{name: 'moe1',age: 50},age: 50}]

我必须在数组上做一个(),然后对每个对象执行一个pick(),还是有一个更干净的方法

编辑

对不起,只是另一个小小的要求,我将如何执行一个地方(即获得所有年龄大于50岁的人),然后执行选择?
编辑
这样做完成,不知道链接如何工作在下划线.

_(data).reject(function (r) { return d.age<51; }).map(function (o) {
            return _.pick(o,"age","name");
});

解决方法

您必须使用_.map并在所有对象上应用相同的_.pick.
var data = [{name: 'moe1',age: 30,age: 60,userid: 'moe1'}];

var result = _.map(data,function(currentObject) {
    return _.pick(currentObject,"name","age");
});

console.log(result);

产量

[ { name: 'moe1',age: 50 },{ name: 'moe2',{ name: 'moe3',age: 50 } ]

如果您想要获取年龄为>的对象50,你可能想这样做

var data = [{name: 'moe1',userid: 'moe1'}];

function filterByAge(currentObject) {
    return currentObject.age && currentObject.age > 50;
}

function omitUserId(currentObject) {
    return _.omit(currentObject,"userid");
}

var result = _.map(_.filter(data,filterByAge),omitUserId);    
console.log(result);

产量

[ { name: 'moe3',age: 60 } ]

你可以这样做链接as suggested by rightfold,像这样

var result = _.chain(data).filter(filterByAge).map(omitUserId).value();

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...