如何按索引引用对象属性

How to refere to object propeperties by index?

本文关键字:对象 属性 引用 索引 何按      更新时间:2023-09-26

有没有办法在不使用 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也可以使用,只是为了举例说明)

你不能。对象没有索引属性。