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>