Javascript 从http调用接收的数据中删除数组-angularJS

Javascript 从http调用接收的数据中删除数组-angularJS,javascript,json,angularjs,Javascript,Json,Angularjs,我正在做一个http调用以从数据库获取数据。有6种类型必须单独调用 $scope.getAll = function() { var url = 'http://someurl/'; varl allObjects = []; $scope.types.forEach(element => { http({ method: 'GET', u

我正在做一个http调用以从数据库获取数据。有6种类型必须单独调用

        $scope.getAll = function() {
        var url = 'http://someurl/';
        varl allObjects = [];
        $scope.types.forEach(element => {
            http({
                method: 'GET',
                url: url + element.name
            }).then(function successCallback(response) {
                allObjects.push(response.data);
            }, function errorCallback(response) {
               // this doesn't apply to my issue
            });
            $scope.allObjects = allObjects;
            }
返回如下JSON对象:

[{},

[{ "label":"myLabel",
        "types": {
           "source":{"url":"some url, "storage":"some storage"}}},
     { "label":"myLabel",
        "types": {
           "source":{"url":"some url, "storage":"some storage"}}}],[{ more objects}],[{ more objects}],],
所有对象返回具有嵌套数组的相同结构。我需要帮助解决的问题是,每次它通过该类型的迭代时,它都会将其添加为一个对象数组。我需要将其添加为一个新对象,而不是一个对象数组。即:

我得到的是:

[{}, [{first iteration}], [{second iteration}], [{etc}]]
我需要的是:

[{first iteration}, {second iteration}, {etc}]

您可以使用
Array.prototype.flat()
函数来实现这一点,该函数将数组压缩到某个深度级别。您的情况的深度将是
1
,这已设置为默认值

var-arr=[
{}, 
[
{ 
测试:1
}
], 
[ 
{ 
第二:2
}
], 
[
{
等:3
}
]
];

console.log(arr.flat())不要将response.data推送到AllObject,因为您的响应已经在数组中。。只需将其分配给variable@MuhammadFazeel我推它是因为我需要它附加到数组中。如果我把它赋给一个变量,它将在for each方法期间被覆盖。请阅读组件和控制器的语法。任何包含注入$scope的文章都可能被视为过时。@code和runningmom我的答案解决了您的问题吗?这并没有完全解决我的问题,因为这是一个原型,我使用的浏览器不支持它。但这确实让我找到了解决办法。非常感谢你!这就是我最终发现的:让arr=[[1,2,3],[2,3,4];console.log([].concat(…arr))这是@R.Cha提供的答案。不知道如何给予他们适当的支持和信任。谢谢你们俩:)