【问题标题】:JavaScript Array Push key valueJavaScript 数组推送键值
【发布时间】:2011-12-10 10:23:35
【问题描述】:

好的,我在这里有点不对劲,我已经浪费了一个小时,所以希望你们中的一个可以帮助我。

var a = ['left','top'],
    x = [];

for(i=0;i<a.length;i++) {
    x.push({
        a[i] : 0
    });
}

如何将值推送到 var a 数组中的每个键?

您可以看到我失败的尝试,但希望这能让您深入了解我正在努力实现的目标。

【问题讨论】:

    标签: javascript arrays push


    【解决方案1】:

    你必须使用括号表示法:

    var obj = {};
    obj[a[i]] = 0;
    x.push(obj);
    

    结果将是:

    x = [{left: 0}, {top: 0}];
    

    也许您只需要一个具有两个属性的对象,而不是一组对象:

    var x = {};
    

    x[a[i]] = 0;
    

    这将导致x = {left: 0, top: 0}

    【讨论】:

      【解决方案2】:

      你可以使用:


      创建对象数组:

      var source = ['left', 'top'];
      const result = source.map(arrValue => ({[arrValue]: 0}));
      

      演示:

      var source = ['left', 'top'];
      
      const result = source.map(value => ({[value]: 0}));
      
      console.log(result);

      或者,如果您想从数组的值创建单个对象:

      var source = ['left', 'top'];
      const result = source.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});
      

      演示:

      var source = ['left', 'top'];
      
      const result = source.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});
      
      console.log(result);

      【讨论】:

        猜你喜欢
        • 2012-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-07
        相关资源
        最近更新 更多