javascript - Lodash 使用一个字符的值从数组创建一个数组

标签 javascript arrays node.js lodash

我有一个包含以下内容的数组,

var people = [{
    _id: 0,
    name: 'Joe'
}, {
    _id: 1,
    name: 'Jim'
}, {
    _id: 2,
    name: 'Mary'
}];

因此,使用 lodash,我想从 people 创建一个数组,其中 name 包含 J 有什么想法吗?

例如:

var newPeople = _.filter(people, function(person) {
    return _.contains('J', person.name);
});

或者更好:

var newPeople = _(people).map(_.unary(_.partialRight(_.contains, 'J', 'name'))).value();

上述任何功能版本都很棒。提前致谢。

最佳答案

这有效:

var newPeople = _.filter(people, function(person) {
    return person.name.indexOf('J') >= 0;
});

对于您的其他方式:

var contains = function (obj, str, elem) {
    if (obj[elem].indexOf(str) >= 0) {
        return obj;
    }
    return;
}

newPeople = _(people).map(_.unary(_.partialRight(contains, 'J', 'name'))).compact().sortBy('name').value();

关于javascript - Lodash 使用一个字符的值从数组创建一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35336685/

相关文章:

javascript - 如何从单个数组创建多维数组或对象?

javascript - 将对象数组过滤为对象

php - 将 foreach() 与多维数组一起使用

node.js - MongoClient.connect 仅一次

javascript - 如何使 clearInterval 工作?

javascript - 在 javascript 中部分应用带有下划线的 String.prototype...

javascript - 拆分一串文件输入框

javascript - jQuery AJAX 函数

javascript - Cosmos DB 查询可以在 Data Explorer 中运行,但不能在 Node.js 中运行

node.js - 无法使用 npm 安装 Firebase CLI