Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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,我想创建一次数组,然后用任何索引将值推送到它,但我得到无法读取未定义的属性“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];