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中。。。元素越多,阵列方法的速度就越慢。