繁体   English   中英

javascript数组到二维数组

[英]javascript array to two dimension array

我有一个像这样的javascript数组

var myArr = [  

   {  
      "Year":"2015",
      "Month":"January",
      "Value":"15.8",
      "District":"Anuradhapura",
      "type":"Rainfall"
   },
   {  
      "Year":"2015",
      "Month":"January",
      "Value":"31.1",
      "District":"Anuradhapura",
      "type":"Temparature"
   },
   {  
      "Year":"2015",
      "Month":"January",
      "Value":"4",
      "District":"Anuradhapura",
      "type":"Wind"
   },
   {  
      "Year":"2015",
      "Month":"January",
      "Value":"69",
      "District":"Anuradhapura",
      "type":"Humidity"
   }
]

我需要将typeValue数据放入二维数组。 我的最终结果应该是这样;

 var data = [  
       [  
          "Rainfall",
          158
       ],
       [  
          "Temparature",
          31.1
       ],
       [  
          "Wind",
          4
       ],
       [  
          "Humidity",
          69
       ]
    ]

请注意,我从后端服务获得的myArr结果可以动态更改此数组的长度。 我怎样才能做到这一点。 谢谢

尝试这个:

具有foreach功能

文档: Array.forEach

var data = [];

myArr.forEach(x => data.push([x.type, parseFloat(x.Value)]))

具有map功能

文档: Array.Map

var data = myArr.map(x => [x.type, parseFloat(x.Value)] );

您可以简单地使用Array.map函数将对象数组映射到二维数组。

  var data = myArr.map(function(o){
       return [o.type, o.Value]
    });

另外,如果要将值转换为float而不是string ,请使用pasreFloat进行此pasreFloat

  var data = myArr.map(function(o){
       return [o.type, pasreFloat(o.Value)]
    });

您可以使用Arrays.map函数获取结果:

     var data = myArr.map(function(input){ return [input.type, input.Value]; });

此函数会将数组的每个元素转换为另一个元素,因为您需要一个数组数组,因此映射函数必须根据对象创建一个数组。

let data = [];
myArr.map( a => {

 data.push([a.type, a.Value]);

});

我熟悉underscore.js:可以使用:

_.zip(_.pluck(myArr, "type"), _.pluck(myArr, "Value"));

 var myArr = [ { "Year":"2015", "Month":"January", "Value":"15.8", "District":"Anuradhapura", "type":"Rainfall" }, { "Year":"2015", "Month":"January", "Value":"31.1", "District":"Anuradhapura", "type":"Temparature" }, { "Year":"2015", "Month":"January", "Value":"4", "District":"Anuradhapura", "type":"Wind" }, { "Year":"2015", "Month":"January", "Value":"69", "District":"Anuradhapura", "type":"Humidity" } ]; alert(JSON.stringify(_.zip(_.pluck(myArr, "type"), _.pluck(myArr, "Value")))); 
 <script src="http://underscorejs.org/underscore-min.js"></script> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM