我有一个大小为5010的数组。 例如,a = [0 ... 5009],而我的第一个元素放置在索引5002上,该索引是动态的并且可能会更改。 因此,如何直接获取数组的第一个元素而不在JavaScript中遍历数组。
答案 0 :(得分:1)
您需要某种循环。
您可以将Array#some
与稀疏数组一起使用,并在将值分配给变量后,将第一个未稀疏项返回true
。
此方法适用于任何值,甚至适用于undefined
或null
或任何其他falsy值。
var array = [],
index;
array.length = 5010;
array[5002] = null;
array.some((_, i) => (index = i, true));
console.log(index);
Array#findIndex
不适用于未知值,因为它会访问每个元素,甚至是稀疏元素。
var array = [],
index;
array.length = 5010;
array[5002] = 'some value'
index = array.findIndex((v, i) => (console.log(i, v), true));
console.log(index);
答案 1 :(得分:0)
如果先前的元素未定义,则可能需要先过滤数组以仅获取数组中已定义的值。
const defineValues = array.filter(item => item); defineValues [0] //这将为您提供数组中第一个定义的项目。
答案 2 :(得分:0)
如果要获取已经具有其值的元素的索引,请使用Array#indexOf
。
var list = [1,2,3];
console.log(list.indexOf(2)); // 1
如果要使用函数查找索引,请使用Array#findIndex
。
var list = [1,2,3];
console.log(list.findIndex(item => item === 2)); // 1
因此,如果您要查找第一个有问题的元素,请执行以下操作:
var list = [null,2,3];
console.log(list.findIndex(item => item)); // 1
答案 3 :(得分:0)
您可以尝试:
var array1 = [1, 2, 3];
var firstElement = array1.shift();
console.log(array1); // expected output: Array [2, 3]
console.log(firstElement); // expected output: 1
在这里您可以找到其他示例Get first element in array