在lodash中,如何通过发生索引从数组中获取对象,而不是搜索键值 .
var tv = [{id:1},{id:2}] var data = //Desired result needs to be {id:2}
我们来看看这个集合:
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"}
我想你要找的是find
你可以给它一个对象,它将返回匹配的元素或 undefined
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
2 回答
我们来看看这个集合:
我将讨论两种方法,索引而不是索引 .
通常,如果要访问许多项目,索引会更好,因为您将集合循环一次 . 如果没有,Meeseeks的find解决方案是正确的选择 .
索引
现在您可以通过索引键到达每个项目:
没有索引
我想你要找的是find
你可以给它一个对象,它将返回匹配的元素或
undefined
例