[英]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"
}
]
我需要将type
和Value
数据放入二维数组。 我的最终结果应该是这样;
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.