代码之家  ›  专栏  ›  技术社区  ›  cube

将动态键:值对传递给对象文本?[副本]

  •  9
  • cube  · 技术社区  · 14 年前

    我使用这段代码(如下所示)试图填充名为 Parameters key:value 与循环迭代一起分配的对 i 变量,例如: {key_1:chunks[1],key_2:chunks[2]} 'key_'+i 没有反映在字面上。

    很明显,我在这里遗漏了一些东西。有人能告诉我是什么吗?…谢谢。

    var Parameters=[];
    var len = chunks.length;
    for (var i = 0; i < len; i++) {
        var key='key_'+i
        obj= { key : chunks[i]};
       Parameters.push(obj)
    }
    
    3 回复  |  直到 14 年前
        1
  •  30
  •   meder omuraliev    14 年前

    编辑:使用 var obj = {}; obj[key] = chunks[i];

    key 在这个 {key:1} 像字面意思一样。

        2
  •  4
  •   Paul Tyng    8 年前

    ES2015年( via Babel )支持动态键:

    const Parameters=[];
    const len = chunks.length;
    for (let i = 0; i < len; i++) {
        const key = `key_${i}`;
        obj = { [key] : chunks[i]};
        Parameters.push(obj);
    }
    

    (注意钥匙周围的括号)

    const Parameters = chunks.map((c, i) => ({ [`key_${i}`]: c }));
    
        3
  •  0
  •   Soman Dubey    12 年前

    同样可以用于查找:obj[key]。Do remmeber obj.key将在对象中查找key

    var obj = {
        test:1
    }
    
    
    var key = 'test'
    obj.test = obj[key] = 1
    

    这里obj.key不起作用