JavaScript 中获取数组中对象的索引
JavaScript 中要通过特定属性查找数组中对象的索引:
- 在数组上调用 findIndex 方法。
- 检查每个对象是否具有具有特定值的属性。
- findIndex 方法将返回第一个匹配对象的索引。
const arr = [{id: 'a'}, {id: 'b'}, {id: 'c'}];
const index = arr.findIndex(object => {
return object.id === 'b';
});
console.log(index); // ?️ 1
我们传递给 Array.findIndex 方法的函数会针对数组中的每个元素进行调用,直到它返回真值或遍历数组中的所有元素。
在回调函数的每次调用中,我们检查对象的属性是否等于特定值并返回 true 或 false。
如果我们传递给 findIndex() 方法的函数从未返回真值,则该方法返回 -1。
要通过特定属性查找数组中对象的索引:
- 使用 map() 方法遍历数组,只返回相关属性的值。
- 对从 map 数组返回的值调用 indexOf() 方法。
- indexOf() 方法返回一个值在数组中第一次出现的索引。
const arr = [{id: 'a'}, {id: 'b'}, {id: 'c'}];
const index = arr.map(object => object.id).indexOf('c');
console.log(index); // ?️ 2
我们使用 Array.map 方法获取相关值的数组。
const arr = [{id: 'a'}, {id: 'b'}, {id: 'c'}];
const values = arr.map(object => object.id)
console.log(values) // ?️ ['a', 'b', 'c']
然后我们在数组上调用 Array.indexOf 方法来获取具体值的索引。
如果 indexOf 方法没有找到具有传入值的元素,它会返回 -1,就像 findIndex 方法一样。
这个解决方案绝对不如 findIndex 那样优雅和直接。 但是,如果我们必须支持 Internet Explorer,它就可以完成工作。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。