Lodash使用一个字符的值从数组中创build一个数组

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

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

所以用lodash,我想创build一个名为J任何想法的people的数组?

例如:

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

甚至更好:

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

以上任何function版本都会很棒。 提前致谢。

这工作:

 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(); 

不需要lodash比较。 例如,这工作:

 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.3.0/lodash.js"></script> <script> var people = [{ _id: 0, name: 'Joe' }, { _id: 1, name: 'Jim' }, { _id: 2, name: 'Mary' }]; var newPeople = _.filter(people, function(person) { return person.name.indexOf('J') > -1; }); console.log(newPeople); </script>