对象长度为0的javascript数组

对象长度为0的javascript数组,javascript,arrays,Javascript,Arrays,我实现了这个答案中的代码: 我稍微更改了代码,因此数组中有更多productdetails: var mapByShop = function(arr, groupName) { return arr.reduce(function(result, item) { result[item[groupName]] = result[item[groupName]] || []; result[item[groupName]][item["pro

我实现了这个答案中的代码:

我稍微更改了代码,因此数组中有更多productdetails:

   var mapByShop = function(arr, groupName) {
        return arr.reduce(function(result, item) {
        result[item[groupName]] = result[item[groupName]] || [];
        result[item[groupName]][item["productId"]] = item;
            return result;
        }, {});
    };
    console.log("Response", response.data);

    $scope.productList = mapByShop(response.data, "shopName");
    console.log("productList", $scope.productList);
代码运行良好,它创建了一个带有ShopName的数组,其中包含带有article对象的对象。例如,该数组如下所示:

Shopname 1:Array[0]
    57ab0360741496001e37586c:Object
        image:"http://pathtoimage.nl/image.jpg"
        name:"Product Name"
        price:32.23
        productId:"57ab0360741496001e37586c"
        productNumber:"ProductNumer 123"
        quantity:1
        shopId:"56699123a9c7a38740a31251"
        shopName:"Shopname 1"
    57ab0360741496001e375867:Object
        {same properties as object above}

Shopname 2:Array[0]
    57bc15ad732b2de02145fe8e:Object
        {same properties as object above}
    57bc15ad732b2de02145fe8f:Object
        {same properties as object above}
    57bc15ad732b2de02145fe90:Object
        {same properties as object above}
    57d157d10b90631c31466329:Object
        {same properties as object above}
    57d158fe0b90631c31466331:Object
        {same properties as object above}
如您所见,在
店名
之后,有一个符号(从Chrome中的控制台复制)表示
数组[0]
。我想用角度
ng repeat
显示此数组的内容,但这也不起作用

我怎样才能解决这个问题?我对javascript非常熟悉,所以举个例子就可以了。

使用{}修复了这个问题

var mapByShop = function(arr, groupName) {
                    return arr.reduce(function(result, item) {
                    result[item[groupName]] = result[item[groupName]] || {};
                    result[item[groupName]][item["productId"]] = item;
                        return result;
                    }, {});
            };

数组[0]表示其中没有值的数组..类似于var b=new Array();console.log(b)=>Array[0]
result[item[groupName]]=result[item[groupName]]| |[];结果[item[groupName]][item[“productId”]]=item-您误用或误解了数组。。。要么推到数组,要么使用{}而不是[]生成对象,然后忘记数组是的,{}就是诀窍!