Javascript 这是…的用法吗。。可以接受吗?

Javascript 这是…的用法吗。。可以接受吗?,javascript,Javascript,我想用几个字符串做同样的事情。我想这样做: names = ["NOTE", "REPLICA", "HINT", "VIEW"]; for (name in names) { name = names[name]; //do stuff } 然后我读了。还可以吗?最好使用数字来遍历数组: var i = 0; for(i=0;i<names.length;i++){ ... } var stuff, index; stuff = []; stuff[0] = "ze

我想用几个字符串做同样的事情。我想这样做:

names = ["NOTE", "REPLICA", "HINT", "VIEW"];
for (name in names) {
    name = names[name];
    //do stuff
}

然后我读了。还可以吗?

最好使用数字来遍历数组:

var i = 0;
for(i=0;i<names.length;i++){
 ...
}
var stuff, index;
stuff = [];
stuff[0] = "zero";
stuff[9999] = "nine thousand nine hundred and ninety-nine";
stuff.name = "foo";
for (index in stuff)
{
    if (stuff.hasOwnProperty(index) && String(Number(index)) === index) {
        console.log("stuff[" + index + "] = " + stuff[index]);
    }
}

最好使用数字遍历数组:

var i = 0;
for(i=0;i<names.length;i++){
 ...
}
var stuff, index;
stuff = [];
stuff[0] = "zero";
stuff[9999] = "nine thousand nine hundred and ninety-nine";
stuff.name = "foo";
for (index in stuff)
{
    if (stuff.hasOwnProperty(index) && String(Number(index)) === index) {
        console.log("stuff[" + index + "] = " + stuff[index]);
    }
}

它比只使用循环慢得多

在我的浏览器(Google Chrome 28.0.1500.72)中大约慢了86%

看看我做的这个。
for..in
循环仅以
110772 ops/sec运行(仍然很快),
for
循环以
791792 ops/sec运行


我通常在
对象的
循环中使用
for。我相信这就是他们真正的目的。

这比只使用
for循环要慢得多

在我的浏览器(Google Chrome 28.0.1500.72)中大约慢了86%

看看我做的这个。
for..in
循环仅以
110772 ops/sec运行(仍然很快),
for
循环以
791792 ops/sec运行


我通常在
对象的
循环中使用
for。我相信这就是它们的实际用途。

如果它在您想要使用它的所有环境中都能按预期工作,那么就没问题了。关键在于:“
for..in
循环对象的可枚举属性名称,而不是数组的索引”。因此,使用
for
循环更好。使用
for..in
循环数组被认为是不好的做法。我将传递模块到未知环境中工作。请在此处找到详细答案,如果它在您希望使用它的所有环境中都能按预期工作,则可以。关键在于:“
for..in
循环遍历对象的可枚举属性名,而不是数组的索引“。因此,
for
循环更好。使用
for..in
循环数组被认为是不好的做法。我将把模块传递给未知环境中的工作。请在此处找到详细答案,每秒操作数不是您应该查看的指标。for循环将对从0到长度的每个整数迭代一次,for..in循环仅对每个可枚举属性迭代一次,这可能会减少数千次操作。每秒操作数不是您应该查看的指标。for循环将对从0到长度的每个整数迭代一次,for..in循环仅对每个可枚举属性迭代一次,这可能会减少数千次操作。