将对象数组中的值推送到新数组中



我有等数据

var data = [{"2013-01-21":1,"2013-01-22":7},{"2014-01-21":2,"2014-01-22":8}];

现在我需要输出作为新的

data = [ [1,7],[2,8] ]

我的代码输出[1,2,7,8],我需要作为[[1,2],[7,8]]。

var data = [{
"2013-01-21": 1,
"2013-01-22": 7
}, {
"2014-01-21": 2,
"2014-01-22": 8
}];
//document.write(data.length)
var result = [];
for (var i = 0; i < data.length; ++i) {
var json = data[i];
console.log(json)
for (var prop in json) {
result.push(json[prop]);
console.log(json[prop])
// or myArray.push(json[prop]) or whatever you want
}
}
$('#result').html(JSON.stringify(result));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="result"></div>

您需要在for循环中创建一个嵌套数组。

但是有一个内置的函数Object.values()可以得到你想要的。

var data = [{
"2013-01-21": 1,
"2013-01-22": 7
}, {
"2014-01-21": 2,
"2014-01-22": 8
}];
var results = data.map(obj => Object.values(obj));
console.log(results);

Object.values()为您提供每个对象中的值。您需要在对象数组上进行迭代,因此:

var data = [{"2013-01-21":1,"2013-01-22":7},{"2014-01-21":2,"2014-01-22":8}];

// data = [ [1,7],[2,8] ]

const extracted = data.map( obj => Object.values(obj))
console.log(extracted)

Object.values()

var data = [{
"2013-01-21": 1,
"2013-01-22": 7
}, {
"2014-01-21": 2,
"2014-01-22": 8
}];
var result = [];
for (var i = 0; i < data.length; i++) {
result.push(Object.values(data[i]));
}
$('#result').html(JSON.stringify(result));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="result"></div>

From MDN-Object.values()方法返回给定对象自己的可枚举属性值的数组,其顺序与for。。。循环中。

这正是你所需要的。

var data = [{"2013-01-21":1,"2013-01-22":7},{"2014-01-21":2,"2014-01-22":8}];
const arr = data.map(x => Object.values(x));
console.log(arr);

您可以使用Object.values()获取值数组解决方案如下:

const data = [{ "2013-01-21": 1, "2013-01-22": 7 }, { "2014-01-21": 2, "2014-01-22": 8 }];
const output = data.map(e => Object.values(e) )
console.log(output)

最新更新