📌  相关文章
📜  javascript 获取数组中具有值的对象的索引 - Javascript (1)

📅  最后修改于: 2023-12-03 15:31:45.733000             🧑  作者: Mango

Javascript获取数组中具有值的对象的索引

在Javascript中,数组是一个包含多个元素的数据结构。有时候我们需要获取数组中具有值的对象的索引,以便进一步处理或修改这些对象。本文将介绍如何使用Javascript获取数组中具有值的对象的索引。

1. 利用Array.prototype.indexOf()方法

Array.prototype.indexOf()方法可以用于查找数组中指定元素的索引。该方法会返回数组中第一个与指定元素相等的元素的索引。如果数组中不存在该元素,则返回-1。因此,我们可以通过该方法获取数组中具有值的对象的索引。

const arr = [null, undefined, 1, false, '', NaN, {}, [], true];

const indexes = arr.reduce((acc, curr, index) => {
  if (typeof curr === 'object' && curr !== null) {
    acc.push(index);
  }
  return acc;
}, []);

console.log(indexes); // [6, 7]

在上述代码中,我们定义了一个数组arr,其中包含了各种类型的元素。我们使用Array.prototype.reduce()方法遍历数组,如果当前元素的类型是对象,而且不为null,则将该元素的索引存入一个新数组中。

运行上述代码,我们将得到一个包含了具有值的对象索引的数组[6, 7]。

2. 利用for循环遍历数组

除了使用现成的数组方法,我们也可以使用for循环遍历数组,手动查找具有值的对象的索引。

const arr = [null, undefined, 1, false, '', NaN, {}, [], true];

const indexes = [];

for (let i = 0; i < arr.length; i++) {
  if (typeof arr[i] === 'object' && arr[i] !== null) {
    indexes.push(i);
  }
}

console.log(indexes); // [6, 7]

在上面的代码中,我们使用for循环遍历数组。如果当前元素的类型是对象,而且不为null,则将该元素的索引存入一个新数组中。

运行上述代码,我们将得到一个包含了具有值的对象索引的数组[6, 7]。

总结

本文介绍了两种获取数组中具有值的对象的索引的方法,分别是使用Array.prototype.indexOf()方法和使用for循环遍历数组。这些方法可以方便地帮助我们查找数组中具有值的对象的索引,以进一步处理或修改这些对象。