使用lodash过滤数据

时间:2017-06-21 05:03:31

标签: lodash

如何使用一些内部属性值过滤数据。

updated_id='1234';

var  result= _.map(self.list, function (item) {
                     // return only item.User_Info.id=updated_id
                    });

3 个答案:

答案 0 :(得分:1)

您可以使用lodash#matchesPropertylodash#filter变体,使用属性的路径过滤掉您需要的对象。该变体位于lodash#filter文档的第3个示例中。

var result = _.filter(self.list, ['User_Info.id', updated_id]);



var self = {
  list: [
    { User_Info: { id: '4321' } },
    { User_Info: { id: '4321' } },
    { User_Info: { id: '1234' } },
    { User_Info: { id: '3214' } },
    { User_Info: { id: '2143' } }
  ]
};
var updated_id = '1234';

var result = _.filter(self.list, ['User_Info.id', updated_id]);

console.log(result);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

lodash有一个过滤方法:

const updated_id='1234';

const result= _.filter(self.list, item => item.User_Info.id === updated_id);

答案 2 :(得分:0)

使用lodash _.filter方法:

_.filter(collection, [predicate=_.identity])

遍历collection的元素,返回所有谓词返回true的数组。谓词由三个参数调用:(值,索引|键,集合)。

以谓词作为自定义函数

 _.filter(myArr, function(o) { 
    return o.name == 'john'; 
 });

以谓词作为过滤对象的一部分(_.matches iteratee速记)

_.filter(myArr, {name: 'john'});

谓词为[key,value]数组(_.matchesProperty iteratee的简写。)

_.filter(myArr, ['name', 'John']);