对象长度为0的javascript数组
我实现了这个答案中的代码: 我稍微更改了代码,因此数组中有更多productdetails:对象长度为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
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代码>-您误用或误解了数组。。。要么推到数组,要么使用{}而不是[]生成对象,然后忘记数组是的,{}就是诀窍!