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。
Internet Explorer
不支持findIndex
方法。 如果我们需要支持浏览器,请使用本文介绍的下一种方法。
要通过特定属性查找数组中对象的索引:
-
使用
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 方法来获取具体值的索引。
由于
map()
方法遍历数组的所有元素,因此元素的顺序得以保留,并且对于值数组和对象数组都是相同的。
如果 indexOf
方法没有找到具有传入值的元素,它会返回 -1,就像 findIndex
方法一样。
这个解决方案绝对不如 findIndex
那样优雅和直接。 但是,如果我们必须支持 Internet Explorer,它就可以完成工作。
相关文章
使用 CSS 和 JavaScript 制作文本闪烁
发布时间:2023/04/28 浏览次数:146 分类:CSS
-
本文提供了使用 CSS、JavaScript 和 jQuery 使文本闪烁的详细说明。
在 PHP 变量中存储 Div Id 并将其传递给 JavaScript
发布时间:2023/03/29 浏览次数:69 分类:PHP
-
本文教导将 div id 存储在 PHP 变量中并将其传递给 JavaScript 代码。
在 JavaScript 中从字符串中获取第一个字符
发布时间:2023/03/24 浏览次数:93 分类:JavaScript
-
在本文中,我们将看到如何使用 JavaScript 中的内置方法获取字符串的第一个字符。
在 JavaScript 中获取字符串的最后一个字符
发布时间:2023/03/24 浏览次数:141 分类:JavaScript
-
本教程展示了在 javascript 中获取字符串最后一个字符的方法