教程 > javascript 教程 > 阅读:447

javascript 获取数组中对象的索引——迹忆客-ag捕鱼王app官网

要通过特定属性查找数组中对象的索引:

  1. 调用数组的 findindex 方法,并传递给它一个函数。
  2. 该函数应返回对相关属性的相等检查。
  3. findindex 方法返回数组中第一个元素的索引,回调函数为此返回一个真值。
// 不支持 ie 6-11
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 方法。 如果我们需要支持浏览器,请为该方法添加一个 polyfill,使用 babel 将我们的代码编译为旧版本的 javascript,或者使用本文介绍的下一种方法。

要通过特定属性查找数组中对象的索引:

  1. 使用 map() 方法遍历数组,只返回相关属性的值。
  2. 调用从 map 数组返回的 indexof() 方法。
  3. indexof 方法返回数组中第一次出现的值的索引。
// 支持 ie 9-11
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 方法一样。

这个ag捕鱼王app官网的解决方案绝对不像 findindex 那样优雅和直接,但是如果我们必须支持 internet explorer,它就可以完成工作。

查看笔记

扫码一下
查看教程更方便
网站地图