我有一系列对应于某些数字的值。永远不会有两个值对应于相同的数字。数字之间没有差距。
EG
{a: 1, b: 2, c: 3, d: 4}
而不是
{a: 1, b: 3, c: 4, d: 7}
现在,我将值存储在一个数组中并找到该值的索引。数组中的索引是值对应的数字。
假设数组是预先填充的。我的问题是在 Javascript中找到相应的数字更有效:
将值存储在数组的特定位置并使用 indexOf() 查找索引。
- -或者 - -
将值和数字作为键值对存储在关联数组中。
我有一系列对应于某些数字的值。永远不会有两个值对应于相同的数字。数字之间没有差距。
EG
{a: 1, b: 2, c: 3, d: 4}
而不是
{a: 1, b: 3, c: 4, d: 7}
现在,我将值存储在一个数组中并找到该值的索引。数组中的索引是值对应的数字。
假设数组是预先填充的。我的问题是在 Javascript中找到相应的数字更有效:
将值存储在数组的特定位置并使用 indexOf() 查找索引。
- -或者 - -
将值和数字作为键值对存储在关联数组中。
从你所说的...... a 应该为零,因为数组从索引零开始而不是 1
CASE 数值数组:{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
}
CASE 跳过一个值:{a: 1, b: 3, c: 4, d: 7}
for..in 适合
var a = [];
a[5] = 5;
for (var x in a) {
ignores 0-4,shows only 5
}
CASE 关联数组:indexof 合适
注意:遍历数组被认为是不好的做法,而不是遍历对象的成员。