如何在JavaScript中将新元素推送到具有未定义索引的数组中
我想创建一次数组,然后用任何索引将值推送到它,但我得到如何在JavaScript中将新元素推送到具有未定义索引的数组中,javascript,arrays,Javascript,Arrays,我想创建一次数组,然后用任何索引将值推送到它,但我得到无法读取未定义的属性“push”的错误 我有以下几种情况 var neg = []; 我想对任何索引使用随机推送 neg[0].push([1,2]); 或 现在我想手动定义,比如neg[0]=[],有没有一种方法可以直接推送到我想要的任何索引?如果提前知道,可以指定数组的大小,例如var neg=new array(40),或者更好的是var neg=[40]将创建一个包含40个未定义元素的新数组 创建后,您可以更改任何索引处的值,只要
无法读取未定义的属性“push”的错误
我有以下几种情况
var neg = [];
我想对任何索引使用随机推送
neg[0].push([1,2]);
或
现在我想手动定义,比如neg[0]=[]
,有没有一种方法可以直接推送到我想要的任何索引?如果提前知道,可以指定数组的大小,例如var neg=new array(40)代码>,或者更好的是var neg=[40]
将创建一个包含40个未定义元素的新数组
创建后,您可以更改任何索引处的值,只要0您可以使用array.splice(您的_索引,0,您的_元素)
将元素按给定索引推入数组。必须先将其设置为空数组,然后才能将其推入
neg[0] = neg[0] || []
neg[0].push([1,2]);
将向数组末尾添加元素。例如:
var neg = [];
neg.push(3); //this will add the number 3 to the end of your array
这里的问题是您试图向未定义的元素添加值:
var neg = [];
neg[0].push([1,2]); // <-- neg[0] is not defined at this moment, and you're treating it as an array object.
或者(并且这可能是您可能正在寻找的),您可以使用所需索引设置数组中任何元素的值:
var neg = [];
neg[0] = [1,2];
neg[22] = [1,2];
这里有一个快速的方法来做你想做的事情
var arr=[];
(arr[0]=[]).push([1,2]);
console.log(arr)
您需要先设置它,然后才能将其推送到neg[0]
不是数组,因此您试图有效地将某个内容推送到未定义的值上。请参见此问题neg
是否具有固定大小?与其他语言不同,well可能重复,在JavaScript中,可以定义长度未定义的数组(var myArray=[]
)。另外,请注意,push会将元素添加到数组的末尾(甚至超过它的初始长度),并返回数组的新长度——例如:
var neg = [];
neg[0] = [];
neg[22] = [];
neg[0].push([1,2]);
neg[22].push([1,2]);
var neg = [];
neg[0] = [1,2];
neg[22] = [1,2];