Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何推送到尚不存在的数组索引_Javascript_Arrays - Fatal编程技术网

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)
工作正常。