我有一个数组(JSON 对象):
result = [[{object},{object}], [{object}], [{object},{object},{object}]]
我正试图将它放入单个对象数组中:
array = [{object},{object},{object}],{object},{object},{object}]
但是无论我尝试哪种方法,我都会从 console.log(array) 输出类似的内容:
[{object}, [circular], {object}, [circular], [circular] etc
我不知道这是什么通告?
var array = [];
for (var i=0; i<result.length;i++) {
array = array.concat(result[i]);
}
或:
for (var i=0; i<result.length;i++) {
var res = result[i];
for (var x=0; x<res.length; x++){
array.push(res[x]);
}
}
最佳答案
您可能需要一些将元素压入累加器的递归函数。 当它不是一个数组时,简单地压入它,否则,压入它的组件:
var isArray = function(someVar) {
return Object.prototype.toString.call( someVar ) === '[object Array]';
};
var flattenArrayAux = function(arr, accum) {
for(var i = 0; i < arr.length; ++i) {
if(isArray(arr[i])) {
flattenArrayAux(arr[i], accum);
}
else {
accum.push(arr[i]);
}
}
}
var flattenArray = function(arr) {
var result = [];
flattenArrayAux(arr, result);
return result;
}
document.write(flattenArray([[1, 2, 3], 4, [[5, 6], [7, 8]]]))
关于javascript - 连接两个数组重新调整循环js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37300146/