Lodash 对象(按索引)

问题描述 投票:0回答:2

在 lodash 中,如何通过对象出现的索引从数组中获取对象,而不是搜索键值。

var 电视 = [{id:1},{id:2}]
var data = //想要的结果需要是{id:2}
javascript lodash
2个回答
7
投票

直接回答有关使用 lodash 中的索引从数组中检索对象的问题:

给定你的数组:

var tv = [{id:1},{id:2}];

您可以简单地使用:

var data = tv[1]; // This will give you the desired result: {id:2}

这是一个基本的 JavaScript 操作,您实际上并不需要 lodash 来完成此特定任务。

但是,如果您对根据属性从集合中获取项目的其他方法感兴趣,我想分享一些 lodash 技术:

  1. 使用find方法(类似于Meeseeks的解决方案):

var collection = [{id: 1, name: "Lorem"}, {id: 2, name: "Ipsum"}];
var item = _.find(collection, {id: 2});
console.log(item); // Outputs: Object {id: 2, name: "Ipsum"}
  1. 使用groupBy建立索引(当您想多次按属性快速查找对象时很有用):
var byId = _.groupBy(collection, 'id');
console.log(byId[2]); // Outputs: Object {id: 2, name: "Ipsum"}

但是,如果您只是想根据其位置从数组中获取项目,那么使用直接数组索引(如

tv[1]
)这是最简单的方法。

希望这能解决问题!


1
投票

我想你正在寻找的是

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
© www.soinside.com 2019 - 2024. All rights reserved.