Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
indexOf()与Javascript中的关联数组的性能?_Javascript_Arrays_Performance_Associative Array_Indexof - Fatal编程技术网

indexOf()与Javascript中的关联数组的性能?

indexOf()与Javascript中的关联数组的性能?,javascript,arrays,performance,associative-array,indexof,Javascript,Arrays,Performance,Associative Array,Indexof,我有一系列的值,它们对应于某些数字。从来没有两个值对应于同一个数字。数字之间没有间隔。 例如 {a:1,b:2,c:3,d:4} 相对于 {a:1,b:3,c:4,d:7} 现在,我将这些值存储在一个数组中,并找到该值的索引。数组中的索引是值对应的数字。 假设数组已预填充。我的问题是,在Javascript中查找相应的数字时,哪个更有效 将值存储在数组的特定位置,并使用indexOf()查找索引 ---或--- 将值和数字作为键值对存储在关联数组中。根据您所说的。。。 当数组从索引0开始而不是从

我有一系列的值,它们对应于某些数字。从来没有两个值对应于同一个数字。数字之间没有间隔。
例如
{a:1,b:2,c:3,d:4} 相对于 {a:1,b:3,c:4,d:7}

现在,我将这些值存储在一个数组中,并找到该值的索引。数组中的索引是值对应的数字。

假设数组已预填充。我的问题是,在Javascript中查找相应的数字时,哪个更有效

将值存储在数组的特定位置,并使用indexOf()查找索引

---或---


将值和数字作为键值对存储在关联数组中。

根据您所说的。。。 当数组从索引0开始而不是从1开始时,a应为0

大小写数字数组:{a:1,b:2,c:3,d:4} for循环是合适的

var a = [];
a[5] = 5; 
for (var i=0; i<a.length; i++) {
    // Iterates over every single numeric indexes from 0 to 5
}
 var a = [];
    a[5] = 5;
    for (var x in a) {
       ignores 0-4,shows only 5
    }
大小写关联数组:indexof是合适的

var a = [];
a[5] = 5; 
for (var i=0; i<a.length; i++) {
    // Iterates over every single numeric indexes from 0 to 5
}
 var a = [];
    a[5] = 5;
    for (var x in a) {
       ignores 0-4,shows only 5
    }

注意:迭代数组被认为是不好的做法,但迭代对象的成员则不是。

对于您的特定情况,答案是在jsperf中。。。元素越多,阵列方法的速度就越慢。