Javascript 如何推送到尚不存在的数组索引
我试图在数组中创建对象集,如果该项尚不存在,则创建一个新集 数据结构如下Javascript 如何推送到尚不存在的数组索引,javascript,arrays,Javascript,Arrays,我试图在数组中创建对象集,如果该项尚不存在,则创建一个新集 数据结构如下 [ { "order": orderData, "items": itemData }, { "order": orderData, "items": itemData } ] 但是,在尝试动态创建新的数组索引并将其推入时,出现以下错误: 无法设置未定义的属性“items” 在本例中,setNo=2,但此.cart[2]尚未实例化 this.cart[setNo]['items
[
{
"order": orderData,
"items": itemData
}, {
"order": orderData,
"items": itemData
}
]
但是,在尝试动态创建新的数组索引并将其推入时,出现以下错误:
无法设置未定义的属性“items”
在本例中,setNo=2
,但此.cart[2]
尚未实例化
this.cart[setNo]['items'].push(items);
如何初始化此索引,以便在运行时将其推送到?您可以检查
购物车[setNo]
是否不存在使用items
属性设置它对象
if(!this.cart[setNo]) cart[setNo] = {items:[]};
this.cart[setNo]['items'].push(items)
您可以检查
cart[setNo]
是否不存在使用items
属性设置它对象
if(!this.cart[setNo]) cart[setNo] = {items:[]};
this.cart[setNo]['items'].push(items)
可能您需要先检查:
if (!this.cart[setNo]) {
this.cart[setNo] = {order: {}, items: []};
}
this.cart[setNo]['items'].push(item);
可能您需要先检查:
if (!this.cart[setNo]) {
this.cart[setNo] = {order: {}, items: []};
}
this.cart[setNo]['items'].push(item);
您还可以使用来检查和添加:
让arr=[
{“顺序”:{},“项目”:[]},
{“顺序”:{},“项目”:[]}
],setNo=2
arr[setNo]
? arr[setNo]['items'].推送(1)
:(arr[setNo]={order:{},items:[]}]['items'].push(1)
console.log(arr)
您还可以使用来检查和添加:
让arr=[
{“顺序”:{},“项目”:[]},
{“顺序”:{},“项目”:[]}
],setNo=2
arr[setNo]
? arr[setNo]['items'].推送(1)
:(arr[setNo]={order:{},items:[]}]['items'].push(1)
console.log(arr)
@GetOffMyLawn此逻辑给了我相同的错误。创建数组并首先处理它。然后this.cart[setNo][“items”]=MyArrayStatisticalReadyProcessed
Oops对不起,误读了。您需要像这样实例化对象:如果(!this.cart[setNo])this.cart[setNo]={order:orderData,items:[]}
@GetOffMyLawn此逻辑给了我相同的错误。请先创建数组并处理它。然后this.cart[setNo][“items”]=MyArrayStatisticalReadyProcessed
Oops对不起,误读了。您需要像这样实例化对象:if(!this.cart[setNo])this.cart[setNo]={order:orderData,items:[]}
if(!this.cart[setNo])this.cart[setNo]={};this.cart[setNo]['items'].push(items)有效。因此如果(!this.cart[setNo])this.cart[setNo]={};这个.cart[setNo]['items'].push(items)
工作正常。