javascript - 如何访问没有索引([])的数组元素
问题描述
我收到一个 api 的响应,其中包含一个数组,其中包含许多对象。对象位置随时间变化。因此,如果我使用 array[0],它返回的对象可能会根据对象的当前排列而改变。无论索引如何,如何访问数组中的特定对象,以便即使索引位置发生更改,也可以访问相同的对象?
解决方案
你需要一些方法来识别你正在寻找的对象。例如,如果对象具有具有特定值的特定属性,则可以使用它在数组中查找该对象。要真正找到对象,您可以使用Array.prototype.find。
例如,如果您一直在寻找带有id
of的对象123
:
const testArray = [{ id: 123 }, { id: 456 }, { id: 789 }];
const idToSearchFor = 123;
const objectWithSpecificId = testArray.find(
obj => obj.id === idToSearchFor
);
如果要查找多个对象而不是一个对象,可以使用Array.prototype.filter:
const testArray = [{ id: 123 }, { id: 456 }, { id: 789 }];
const idsFilter = [123, 789];
const matchingObjects = testArray.filter(
obj => idsFilter.includes(obj.id)
);
console.log(matchingObjects.length); // 2
推荐阅读
- python - 在 Python 中使用条件填充相邻列
- javascript - 如何获取 Angular 反应表单中值更改的字段的 FormControlName
- mysql - 从具有多行结果的子查询结果中搜索关键字
- list - vim:列出搜索结果,找到其中一个然后跳回
- python - Tensorflow:来自相同初始猜测的完全不同的结果
- c# - mongodb4.0在c#中启动事务(驱动rversion 2.7+),在事务执行期间,整个数据库会被锁定,如何解决?
- powershell - 如何通过使用 PowerShell 处理 GUI 返回错误级别?
- ocaml - 是否可以在 Ocaide 中使用 OUnit?
- android - 如何为接口后面抽象的行为主题编写 RXjava 2 测试
- vue.js - 依赖于另一个查询结果的 Apollo 查询