首页 > 解决方案 > 如何访问没有索引([])的数组元素

问题描述

我收到一个 api 的响应,其中包含一个数组,其中包含许多对象。对象位置随时间变化。因此,如果我使用 array[0],它返回的对象可能会根据对象的当前排列而改变。无论索引如何,如何访问数组中的特定对象,以便即使索引位置发生更改,也可以访问相同的对象?

标签: javascriptarrays

解决方案


你需要一些方法来识别你正在寻找的对象。例如,如果对象具有具有特定值的特定属性,则可以使用它在数组中查找该对象。要真正找到对象,您可以使用Array.prototype.find

例如,如果您一直在寻找带有idof的对象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

推荐阅读