Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何创建具有动态特性名称的对象_Javascript - Fatal编程技术网

Javascript 如何创建具有动态特性名称的对象

Javascript 如何创建具有动态特性名称的对象,javascript,Javascript,所以,我想要一个具有动态属性名的对象,从数组中检索。这就是我迄今为止所尝试的: var fruits = {}; var props = ['orange', 'apple', 'banana']; for (var i = 0; i < props.length; i++) { fruits.props[i] = 'Juice'; } 但我得到了一个错误: 未捕获的TypeError:无法设置未定义的属性“0” 我做错了什么 编辑: 不是因为问题的标题相似,问题本身也必须相似。

所以,我想要一个具有动态属性名的对象,从数组中检索。这就是我迄今为止所尝试的:

var fruits = {};

var props = ['orange', 'apple', 'banana'];

for (var i = 0; i < props.length; i++) {
  fruits.props[i] = 'Juice';
}
但我得到了一个错误:

未捕获的TypeError:无法设置未定义的属性“0”

我做错了什么

编辑:

不是因为问题的标题相似,问题本身也必须相似。这个问题与其他问题不同,因为我没有从DOM中检索属性名。我试图循环一个数组,当使用括号表示法时,它往往会引起混乱。

在您的代码中;将尝试设置props属性的第0个索引值,其中属性未定义并导致错误

用于使用字符串指定对象属性

var水果={}; var props=['橙色','苹果','香蕉']; 对于var i=0;i 需要是:水果[道具[i]='果汁'


因为使用点表示法,您不能使用动态属性名称,但使用括号表示法时,属性应为字符串,该字符串可以是文字或动态获取的值。

如果需要括号中的键,请阅读更多信息

属性访问器通过使用点符号或括号符号提供对对象属性的访问

语法

var水果={}; var props=['橙色','苹果','香蕉']; 对于var i=0;i苹果;水果[道具[i]]=“果汁”;对括号符号的解释投了赞成票。
fruits { orange: 'Juice', apple: 'Juice', banana: 'Juice' };
object.property
object["property"]