Javascript angular.merge对于关联数组(对象)无法正常工作

Javascript angular.merge对于关联数组(对象)无法正常工作,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我有以下AngularJS代码,它通过后端HTTP请求从数据库中提取数据: // Get the list of functions and associated metrics $http.get("/BackEnd/Queries/GetFunctionListWithMetrics.php?BuildID=" + $scope.Build.ID + "&ClassID=" + $scope.Class.ID) .success(function (d

我有以下AngularJS代码,它通过后端HTTP请求从数据库中提取数据:

    // Get the list of functions and associated metrics
    $http.get("/BackEnd/Queries/GetFunctionListWithMetrics.php?BuildID=" + $scope.Build.ID + "&ClassID=" + $scope.Class.ID)
        .success(function (data, status, headers, config) {

            // Save the data
            //$scope.functionlist = data;
            angular.merge($scope.functionlist, data);

            // We've finished loading
            $scope.isLoading = false;
        })
“数据”是一个关联数组,其中键是一个数字(通常类似于“718214”)

最初,我的代码有一行“$scope.functionlist=data;”(当前显示的代码已注释掉),一切正常。然后,我转而使用angular.merge行(因为我要发出几个不同的http请求,并且我希望所有结果都合并到同一个$scope.functionlist对象中)

从功能的角度来看,这很好。我的页面继续正确显示数据,我的多个HTTP请求可以收集数据并将其合并在一起,而无需考虑任何时间\顺序问题

然而由于某种原因,我的页面开始运行得非常慢。控制台中未显示任何错误

最后,我通过添加以下两行并比较functionlist和functionlist2的内容,找出了问题所在:

$scope.functionlist2 = data;
angular.merge($scope.functionlist, data);
我意识到,虽然functionlist2包含我的关联数组,大约有10个键,但functionlist版本包含一个718214个元素的数组

angular.merge似乎错误地将数据的数字键解释为数组索引

我没有在angular文档或web上看到任何关于这方面的内容

这是一个已知的问题吗?是否有其他方法可以获得正确的结果(即不使用700+k数组元素)

提前谢谢

编辑


啊,Javascript不支持关联数组,只支持对象。嗯,我仍然不确定如何实现我所需要的。

啊,我最终解决了这个问题,实际上非常简单

当然Javascript实际上不支持关联数组,只支持数字索引数组和对象,所以我实际上拥有的是一个对象

所以最后我要做的就是初始化$scope.functionlist,如下所示:

$scope.functionlist = {};
$scope.functionlist = [];
而不是像这样做(作为一个数组):

$scope.functionlist = {};
$scope.functionlist = [];
现在一切都很顺利

??