gpt4 book ai didi

javascript - 在javascript中,何时使用对象文字和何时使用数组?

转载 作者:行者123 更新时间:2023-12-03 12:44:04 25 4
gpt4 key购买 nike

这是一个样本。我的担心似乎都在做。他们更喜欢哪个?

var fooArr = [{ "bar": {"blah": 9 } }];

for(var i in fooArr) {
var value = fooArr[i].bar.blah;
console.log(value); //checking in firebug console
}

var fooObj = { "bar": {"blah": 9 } };
for(var i in fooObj) {
var value = fooObj[i].blah;
console.log(value); //checking in firebug console
}

另外,以下似乎无效,避免数组表示法的任何方法。
var fooObj1 = {
{ "bar": { "blah": 9 } },
{ "bar": { "blah": 4 } },
{ "bar": { "blah":12} }
};

因此,我不得不将上面的代码修改为类似下面的代码。是否太难于对对象字面量太粘
var fooObj1 = {
1:{ "bar": { "blah": 9 } },
2:{ "bar": { "blah": 4 } },
3:{ "bar": { "blah":12} }
};

再次感谢那些帮助我进行查询的人员。

最佳答案

该示例并未真正比较对象和数组。您只是通过将对象放在数组的第一个元素中来添加不必要的层。

当您必须通过名称引用某物时,请使用一个对象。

var obj = {}

// 3种做同一件事的方式:
var obj.newName = 'bob';

var obj['newName'] = 'bob';

var name = 'newName';
var obj[name] = 'bob';

第二样式并不是真正必需的,实际上访问起来可能比第一样式慢一些,但是它可以帮助您了解第三样式如何有用。或者,您可以直接执行以下操作:
var obj = { newName:'bob' }

如果您想在一个对象中使用一堆名称,它将有些愚蠢:
var obj = { newName:'bob', anotherNewName:'sue', yetAnotherNewName:'billy' }

obj.newName === 'bob'
obj.anotherNewName === 'sue'
//etc...

那就是数组的用途。
var listOfNewNames = ['bob','sue','billy']
listOfNewNames[0] === 'bob'
listOfNewNames[1] === 'sue'
//etc...

当然,没有什么可以阻止您将数组分配给对象属性:
obj { listOfNewNames:['bob','sue','billy'] }

obj.listOfNewNames[0] === 'bob'

或者,如上所述,一个数组中有多个对象:
var listOfMonsters = [
{ monsterName:'Grarrr',eats:'people' },
{ monsterName:'Wadsworth',eats:'other monsters'}
];

listOfMonsters[1].monsterName === 'Wadsworth'

对象通常更多地是将相关值和方法的组保持在一起以便于引用。数组只是事物的列表,通常可以假定所有事物都适用于同一事物或从同一事物派生。

关于javascript - 在javascript中,何时使用对象文字和何时使用数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4735877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com