索引的Lodash对象

ark*_*ago 1 javascript lodash

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

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

Eze*_*lla 6

我们来看看这个集合:

var collection = [{id: 1, name: "Lorem"}, {id: 2, name: "Ipsum"}];
Run Code Online (Sandbox Code Playgroud)

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

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

索引

var byId   = _.groupBy(collection, 'id');
var byName = _.groupBy(collection, 'name');
Run Code Online (Sandbox Code Playgroud)

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

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

没有索引

var item = _.find(collection, {id: 2});
console.log(item); // Object {id: 2, name: "Ipsum"}
Run Code Online (Sandbox Code Playgroud)