javascript - 如何通过索引引用对象属性?

标签 javascript performance object

有没有一种方法可以在不使用 for in 循环的情况下迭代对象中的属性?

根据 Nicholas C. Zakas 的说法,for in 循环遍历对象的时间比 for 循环长 8 倍,但我找不到一种方法来遍历对象的属性而不将它们的名称更改为类似1、2、3 等女巫并不理想。

速度是我最关心的问题。

最佳答案

你可以有另一个数组来保存你的键。像这样:

var obj = {
    'key': 'value',
    'some': 'other value'
},
    arr = [ 'key', 'some' ];

for ( var i = 0, l = arr.length; i < l; i++ ) {
    console.log( obj[ arr[ i ] ] );
}

但是,这很丑陋。这种情况下的性能永远不会成为你的瓶颈,你应该更喜欢可读性。上面的代码可以这样完成:

Object.keys( obj ).forEach( function( key ) {
    console.log( obj[ key ] );
} );

这样更简洁、更易读。 (也可以使用for..in,只是为了举例)

关于javascript - 如何通过索引引用对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10993873/

相关文章:

Javascript 书签从一个页面获取信息并将其提交到另一页上的表单

javascript - 多维数组循环错误

javascript - Timbre.js 键盘输入似乎不起作用

mongodb - MongoDB 的 Varnish ,有必要吗?

c# - 如何将 javascript 中的 JSON 数组传递到我的代码隐藏文件

c++ - 从文件中读取大量数据并以有效的方式解析日期。如何提高海量数据的性能?

mysql - 如何提高嵌套集模型中数千个插入的速度?

java - 如何在Java中使用数组参数初始化对象

oop - 考试类型应用程序的数据结构

java - JSR-303 类型 java 字段验证是否始终/隐式在字段验证之前运行?