我有数据
{
YHOO: [
{
date: Fri Apr 12 1996 00:00:00 GMT-0400 (EDT),
open: 25.25,
high: 43,
low: 24.5,
close: 33,
volume: 408720000,
adjClose: 1.38,
symbol: 'YHOO'
},
...
{
date: Thu Nov 14 2013 00:00:00 GMT-0500 (EST),
open: 35.07,
high: 35.89,
low: 34.76,
close: 35.69,
volume: 21368600,
adjClose: 35.69,
symbol: 'YHOO'
}
],
GOOGL: [
{
date: Thu Aug 19 2004 00:00:00 GMT-0400 (EDT),
open: 100,
high: 104.06,
low: 95.96,
close: 100.34,
volume: 22351900,
adjClose: 100.34,
symbol: 'GOOGL'
},
...
{
date: Thu Nov 14 2013 00:00:00 GMT-0500 (EST),
open: 1033.92,
high: 1039.75,
low: 1030.35,
close: 1035.23,
volume: 1166700,
adjClose: 1035.23,
symbol: 'GOOGL'
}
],
...
}
如何跳过键,因此对象变为像这样的对象数组
[
{
date: Fri Apr 12 1996 00:00:00 GMT-0400 (EDT),
open: 25.25,
high: 43,
low: 24.5,
close: 33,
volume: 408720000,
adjClose: 1.38,
symbol: 'YHOO'
},
{
date: Thu Nov 14 2013 00:00:00 GMT-0500 (EST),
open: 35.07,
high: 35.89,
low: 34.76,
close: 35.69,
volume: 21368600,
adjClose: 35.69,
symbol: 'YHOO'
},
{
date: Thu Aug 19 2004 00:00:00 GMT-0400 (EDT),
open: 100,
high: 104.06,
low: 95.96,
close: 100.34,
volume: 22351900,
adjClose: 100.34,
symbol: 'GOOGL'
},
{
date: Thu Nov 14 2013 00:00:00 GMT-0500 (EST),
open: 1033.92,
high: 1039.75,
low: 1030.35,
close: 1035.23,
volume: 1166700,
adjClose: 1035.23,
symbol: 'GOOGL'
}
]
答案 0 :(得分:1)
你可以这样做
var arr = {
YHOO: [
{
date: 'Fri Apr 12 1996 00:00:00 GMT-0400 (EDT)',
open: 25.25,
high: 43,
low: 24.5,
close: 33,
volume: 408720000,
adjClose: 1.38,
symbol: 'YHOO'
},
{
date: 'Thu Nov 14 2013 00:00:00 GMT-0500 (EST)',
open: 35.07,
high: 35.89,
low: 34.76,
close: 35.69,
volume: 21368600,
adjClose: 35.69,
symbol: 'YHOO'
}
],
GOOGL: [
{
date: 'Thu Aug 19 2004 00:00:00 GMT-0400 (EDT)',
open: 100,
high: 104.06,
low: 95.96,
close: 100.34,
volume: 22351900,
adjClose: 100.34,
symbol: 'GOOGL'
},
{
date: 'Thu Nov 14 2013 00:00:00 GMT-0500 (EST)',
open: 1033.92,
high: 1039.75,
low: 1030.35,
close: 1035.23,
volume: 1166700,
adjClose: 1035.23,
symbol: 'GOOGL'
}
],
};
var newArr = [];
for(var item in arr){
if(arr.hasOwnProperty(item)){
arr[item].forEach(x => newArr.push(x));
}
}
console.log(newArr);

从 4castle&#39> 评论中你也可以做
for(var item in arr){
if(arr.hasOwnProperty(item)){
newArr = newArr.concat(arr[item]);
}
}
答案 1 :(得分:0)
这可以通过迭代数据数组的每个属性来实现,例如。
var data2 = [];
Object.keys(data).forEach(key => data2 = data2.concat(data[key]));
console.log(data2);
这将产生一个单数值的数组。
答案 2 :(得分:0)
首先,您的代码中存在错误。您在每个对象中都有data
属性,但它的值是非法的,您可以将它们修改为字符串。
{
//data should be string type like this
//otherwise the browser will throw an error
date: 'Fri Apr 12 1996 00:00:00 GMT-0400 (EDT)',
open: 25.25,
high: 43,
low: 24.5,
close: 33,
volume: 408720000,
adjClose: 1.38,
symbol: 'YHOO'
}
···

我认为你可以使用for-in
循环来完成它。
//data variable is reference to your data.
var newData = [];
for ( var key in data ) {
for ( var innerKey in data[key] )
newData.push( data[key][innerKey] );
}

或者使用正则表达式来解决这个问题。
var finalData = [];
var dataArr = JSON.stringify( data ).match( /\[[^\]]*\]/g );
dataArr.forEach( function( item ) {
var arr = JSON.parse( item );
for( var i = 0, len = arr.length; i < len; i++ )
finalData.push( arr[i] );
});
&#13;