【问题标题】:How do I convert an array of integers to an array of objects?如何将整数数组转换为对象数组?
【发布时间】:2015-08-31 02:33:46
【问题描述】:

我想转换成这种格式的数组

var values = [1,2,3]; 

到这种格式的数组

var data = [ 
  {x: 0, value: 1},
  {x: 1, value: 2},
  {x: 2, value: 3}
];

【问题讨论】:

  • typo var data = [ {x: 0, value: 1}, {x: 1, value: 2}, {x: 2, value: 3} ];

标签: javascript arrays type-conversion


【解决方案1】:

您可以简单地使用Array.prototype.map 方法:

var data = values.map(function(el, i) {
   return {
     x: i,
     value: el
   }
});

【讨论】:

    【解决方案2】:

    一个基本的选择是:

    var values = [1,2,3]; 
    
    var newValues = [];
    for(var i = 0;i < values.length;i++){
        newValues.push( {x: i, values: values[i]} );
    }
    

    【讨论】:

      【解决方案3】:

      也许这样的事情可以解决问题:

      var values = [1,2,3];
      var _dict = [];
      
      for (var i = 0; i < values.length; i++) {
         _dict.push( {x: i, value: values[i]} );
      }
      

      JSFiddle

      【讨论】:

      • 不要在数组上使用for...in。这就像那个论点的典型案例。
      • @Oka 谢谢。不知道。修改后的代码够好吗?
      • 我没有投反对票,但您的回答有几个问题。 1. OP 想要创建一个对象数组而不是一个对象。 2. 你不应该使用for ... in 循环来遍历数组。 3.xy 应该是单独的属性。将_dict定义为数组,正确迭代,然后使用Array.prototype.push方法将对象推入数组。
      • @Vohuman 感谢您的评论。你没有投反对票,但我确实赞成你的回答。我也是 javascript 新手,这就是为什么答案是平庸的 :)
      • 谢谢你:)。是的,但是您忘记将 _dict 变量定义为数组。 var _dict = [];
      猜你喜欢
      • 2013-09-21
      • 2017-10-18
      • 2012-05-11
      • 2019-01-09
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多