javascript - 连接两个数组重新调整循环js

标签 javascript

我有一个数组(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/

相关文章:

javascript - 如果值的长度达到最大长度,如何在 div 和 tirm/slice 中添加复选框的值

javascript - 如何在点击时做一个下拉菜单

javascript - d3.select 具有多个 id 的元素

javascript - 在 JQuery 中解析 JSON 文件

javascript - 如何将十字关闭按钮添加到动态生成的剑道选项卡中

javascript - jQuery 可以使用结束标记作为选择器吗?

Javascript 和 Python - 最佳通信方法

javascript - 单击浏览器刷新按钮时调用 Ajax

javascript - 函数如何在声明前访问 const?

javascript - 如何正确定位点击的div?