如何获取没有循环的数组中第一个元素的索引?

时间:2019-06-13 13:12:43

标签: javascript arrays

我有一个大小为5010的数组。 例如,a = [0 ... 5009],而我的第一个元素放置在索引5002上,该索引是动态的并且可能会更改。 因此,如何直接获取数组的第一个元素而不在JavaScript中遍历数组。

4 个答案:

答案 0 :(得分:1)

您需要某种循环。

您可以将Array#some与稀疏数组一起使用,并在将值分配给变量后,将第一个未稀疏项返回true

此方法适用于任何值,甚至适用于undefinednull或任何其他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