最重要的是,抱歉我的英文
我正在尝试将多个Web响应保存到数组中
我有这样的事情:
var array = [];
$.ajax({
url: URL,
success: function(e){
array.push(e);
}
});
但我得到的是这样的:
[[31312, 123213], [12321, 123123], [123213, 132132]]
我想得到:
[321321, 321321, 32131, 321312, 321321, 321312]
我怎么能这样做?
提前致谢!!
答案 0 :(得分:4)
替换
array.push(e);
与
array.push.apply(array, e);
如果e
是例如1, 2, 3
,第一个将执行array.push([1, 2, 3])
,而第二个将执行array.push(1, 2, 3)
,这将为您提供正确的结果。
答案 1 :(得分:2)
您可以使用递归函数将多维数组展平为单个数组。
var data = [[31312, 123213], [12321, 123123], [123213, 132132]]
function flatten( arr ){
return arr.reduce(function( ret, item ){
return ret.concat( item.constructor === Array ? flatten( item ) : [ item ] );
}, [])
}
console.log( flatten( data ) );

<script src="http://codepen.io/synthet1c/pen/WrQapG.js"></script>
&#13;
答案 2 :(得分:1)
您可以使用concat
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat
array = array.concat(e)