我进行了很多搜索,但在网上找不到满意的答案。在javascript中,如何根据键值将数组添加到特定位置的另一个多维数组中?

finalArray = []; //final result to be stored here
for(var i=0; i<5; ++i)
{
    var temp = [];
    for(var j in $scope.team[i])
    {
        // counter = some value calculated here
        temp[j] = $scope.team[i][j][counter];
    }
    finalArray[group[i]] = temp; // This gives an error
}


基本上,我有

group = [ 'alpha' ,'beta', 'gamma' ]; //this array generated dynamically


我的finalArray应该像

finalArray['alpha'] = [ some records ];
finalArray['beta'] = [ some records ];
....


据我所知,将数组添加到另一个数组的方法是使用.push()方法,但这会创建索引为0、1、2 ...,这是不希望的。请帮帮我

最佳答案

您必须使用对象而不是数组。在代码中进行以下更改

finalArray = {}; //final result to be stored here
for(var i=0; i<5; ++i)
{
    var temp = {};
    for(var j in $scope.team[i])
    {
        // counter = some value calculated here
        temp[j] = $scope.team[i][j][counter];
    }
    finalArray[group[i]] = temp;
}
console.log(finalArray); //to see the object key value structure


现在,您可以使用group [i]名称引用finalArray中的值。希望这可以帮助

07-26 01:13