因此,我想要一个具有动态属性名称的对象,该对象是从数组中检索的。到目前为止,这是我尝试过的:
var fruits = {};
var props = ['orange', 'apple', 'banana'];
for (var i = 0; i < props.length; i++) {
fruits.props[i] = 'Juice';
}
我的对象应如下所示:
fruits { orange: 'Juice', apple: 'Juice', banana: 'Juice' };
但是我得到了错误:
未捕获的TypeError:无法设置未定义(...)的属性'0'
我究竟做错了什么?
编辑:
不是因为问题标题相似,而是问题本身也必须如此。这个问题与695050不同,因为我没有从DOM检索我的属性名称。我正在尝试循环一个数组,当使用方括号表示法时,它容易引起混乱。
在您的代码中,fruits.props[i] = 'Juice';
将尝试在该props
属性所在的位置设置属性的第0个索引值,undefined
并导致错误。
使用括号表示法通过字符串分配对象属性。
var fruits = {};
var props = ['orange', 'apple', 'banana'];
for (var i = 0; i < props.length; i++) {
fruits[props[i]] = 'Juice';
//----^^^^^^^^^^-----
}
console.log(fruits);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句