Javascript 将数组中的数字相乘,并以文字和点表示法添加到对象

Javascript 将数组中的数字相乘,并以文字和点表示法添加到对象,javascript,Javascript,只是想知道如何用文字和点符号来编写这段代码 function multi(num){ var obj = {}; for(var i = 0; i < num.length; i++){ obj[num[i]] = num[i] * 2; } return obj; } 多功能(num){ var obj={}; 对于(变量i=0;i

只是想知道如何用文字和点符号来编写这段代码

function multi(num){
  var obj = {};
  for(var i = 0; i < num.length; i++){
    obj[num[i]] = num[i] * 2;

  }
  return obj;  
}
多功能(num){
var obj={};
对于(变量i=0;i
如果使用文字符号,则不能像so
obj={num[i]:num[i]*2}
点表示法也是如此。num[i]=num[i]*2
将不起作用,因为文字和点表示法中的键需要是实际字符串。有没有一种方法可以将对象的键定义为当前数字和当前数字乘以两个具有文字或点符号的对象的值

因此,除了括号外,在任何其他符号中都不可行贾克莱罗德

在支持
Object.defineProperty
(ECMA5)的浏览器上,如果确实需要,也可以使用此选项

function multi(num) {
    var obj = {};
    for (var i = 0; i < num.length; i++) {
        Object.defineProperty(obj, num[i], {
            value: num[i] * 2,
            enumerable: true
        });
    }
    return obj;
}

var nums = [1, 2, 3, 4, 5, 6, 7, 8, 9];

console.log(multi(nums));
多功能(num){
var obj={};
对于(变量i=0;i

Nope上,这就是方括号的意思。FWIW,
obj={[num[i]]:num[i]*2}
notation是在ECMAScript 6中出现的。@blender所以除了方括号之外,其他任何符号都不可行?@jharclerode:方括号符号有什么问题吗?@blender其反人类罪。哈哈,一点也不介意,我只是觉得无聊,出于某种原因,我发誓我以前做过,但我在想别的事情。