首页 文章

索引的Lodash对象

提问于
浏览
1

在lodash中,如何通过发生索引从数组中获取对象,而不是搜索键值 .

var tv = [{id:1},{id:2}]
var data = //Desired result needs to be {id:2}

2 回答

  • 1

    我们来看看这个集合:

    var collection = [{id: 1, name: "Lorem"}, {id: 2, name: "Ipsum"}];
    

    我将讨论两种方法,索引而不是索引 .

    通常,如果要访问许多项目,索引会更好,因为您将集合循环一次 . 如果没有,Meeseeks的find解决方案是正确的选择 .

    索引

    var byId   = _.groupBy(collection, 'id');
    var byName = _.groupBy(collection, 'name');
    

    现在您可以通过索引键到达每个项目:

    console.log(byId[2]);      // Object {id: 2, name: "Ipsum"}
    console.log(byName.Lorem); // Object {id: 1, name: "Lorem"}
    

    没有索引

    var item = _.find(collection, {id: 2});
    console.log(item); // Object {id: 2, name: "Ipsum"}
    
  • 6

    我想你要找的是find

    你可以给它一个对象,它将返回匹配的元素或 undefined

    var arr = [ { id: 1, name: "Hello" }, { id: 2, name: "World" } ];
    
    var data = _.find(arr, { id: 1 }); // => Object {id: 1, name: "Hello"}
    
    var data = _.find(arr, { id: 3 }); // => undefined
    

相关问题