📅  最后修改于: 2023-12-03 15:31:45.733000             🧑  作者: Mango
在Javascript中,数组是一个包含多个元素的数据结构。有时候我们需要获取数组中具有值的对象的索引,以便进一步处理或修改这些对象。本文将介绍如何使用Javascript获取数组中具有值的对象的索引。
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]。
除了使用现成的数组方法,我们也可以使用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循环遍历数组。这些方法可以方便地帮助我们查找数组中具有值的对象的索引,以进一步处理或修改这些对象。