Javascript 使用X.push(?)或X[索引]=?
我想用javascript创建一个长度已知的Javascript 使用X.push(?)或X[索引]=?,javascript,arrays,Javascript,Arrays,我想用javascript创建一个长度已知的数组(X)。使用X.push(??)或X[index]=??填充我的数组有什么区别?结果似乎是一样的,但有什么不同吗 编辑:谢谢你的回复。我可能应该更具体地询问这些差异。当使用X.push函数(添加到数组末尾)时,与为非常大的数组分配空间并仅将索引设置为值相比,使用非常大的数组进行此操作时,在内存/时间方面是否会有任何问题?使用X[index]=?? 每次需要分配位置索引值时 在本作业中X.push(?? 不需要担心指数的位置。我们可以使用X[inde
数组(X)
。使用X.push(??)
或X[index]=??
填充我的数组有什么区别?结果似乎是一样的,但有什么不同吗
编辑:谢谢你的回复。我可能应该更具体地询问这些差异。当使用X.push函数(添加到数组末尾)时,与为非常大的数组分配空间并仅将索引设置为值相比,使用非常大的数组进行此操作时,在内存/时间方面是否会有任何问题?使用
X[index]=??
每次需要分配位置索引值时
在本作业中X.push(??
不需要担心指数的位置。我们可以使用
X[index]=??
每次需要分配位置索引值时
在本作业中X.push(??
不需要担心指数的位置。我们可以直接分配数据元素99%的时间用于向使用push的数组添加新元素
通常情况下,您不会添加带有x[index]的元素,因为会弄乱数组中的自然序列
当您需要编辑或获取数组的特定元素时,通常使用x[index],例如,在函数上传递索引
function doSomethingWithSpecificElement(index){
//x[index] usage (edit or anything)
}
向使用push的数组添加新元素的次数占99%
通常情况下,您不会添加带有x[index]的元素,因为会弄乱数组中的自然序列
当您需要编辑或获取数组的特定元素时,通常使用x[index],例如,在函数上传递索引
function doSomethingWithSpecificElement(index){
//x[index] usage (edit or anything)
}
当我们写X[index]=
时,意味着我们为特定的索引设置了一个值。
当我们写X时,push(??
意味着我们在不知道位置的情况下输入值当我们写X[index]=
意味着我们为特定的索引设置了一个值。
当我们编写X.push(??)
时,意味着我们在X.push()中放置了位置未知的值,您不必担心索引。函数的作用是:自动将元素从索引0-n的位置连续推送。
但是在X[index]中,您需要专门定义索引,您需要将值放入数组中哪个索引处。在X.push()中,您不需要担心索引。函数的作用是:自动将元素从索引0-n的位置连续推送。
但是在X[index]中,您需要专门定义索引,您需要将值放在哪个索引的数组中。这将取决于索引的精确值
使用array.push(值)时代码>,该值将追加到数组的末尾,而不会更改数组中的其他值。结果类似于使用array[array.length]=value代码>
var X = [ 1 ];
X.push(2); // `length` becomes 2; 2 appended after 1
console.log(X); // [ 1, 2 ]
X[X.length] = 3; // `length` becomes 3; 3 appended after 2
console.log(X); // [ 1, 2, 3 ]
除此之外,array[index]=value代码>为特定索引(属性)指定一个值,而不管它是否已经有值:
X[0] = 99; // `length` still 3; 1 replaced
console.log(X); // [ 99, 2, 3 ]
X[4] = 77; // `length` becomes 5; gap created at 4th
console.log(X); // [ 99, 2, 3, undefined, 77]
在这两种情况下,数组的长度将根据需要增加,以在最大索引上保持1。这将取决于索引的精确值
使用array.push(值)时代码>,该值将追加到数组的末尾,而不会更改数组中的其他值。结果类似于使用array[array.length]=value代码>
var X = [ 1 ];
X.push(2); // `length` becomes 2; 2 appended after 1
console.log(X); // [ 1, 2 ]
X[X.length] = 3; // `length` becomes 3; 3 appended after 2
console.log(X); // [ 1, 2, 3 ]
除此之外,array[index]=value代码>为特定索引(属性)指定一个值,而不管它是否已经有值:
X[0] = 99; // `length` still 3; 1 replaced
console.log(X); // [ 99, 2, 3 ]
X[4] = 77; // `length` becomes 5; gap created at 4th
console.log(X); // [ 99, 2, 3, undefined, 77]
在这两种情况下,数组的长度将根据需要增加,以保持在最大索引的1之上。这里有多个内容。让我们来谈谈这里的第一个场景,X[index]=“something”代码>
在这里,您可以提到索引
,它将在数组的特定索引中赋值。但这里有一个陷阱。例如,考虑下面的代码
var t = ['hello'];
t[21] = ['world'];
虽然您将假定数组中只有两个元素,但它只返回长度为2
,相反,这将返回22
,因为它也会创建0到20之间的空数组元素
此外,如果您传递了错误的索引,它将覆盖所述索引中的任何值
如果要将元素推送到数组的末尾,则不需要指定任何索引。它知道长度并将新元素附加到数组的末尾。但在这里你做不了什么。它总是将新元素推到数组的末尾。类似地,如果要在数组的开头添加元素,可以使用这里有很多东西。让我们来谈谈这里的第一个场景,X[index]=“something”代码>
在这里,您可以提到索引
,它将在数组的特定索引中赋值。但这里有一个陷阱。例如,考虑下面的代码
var t = ['hello'];
t[21] = ['world'];
虽然您将假定数组中只有两个元素,但它只返回长度为2
,相反,这将返回22
,因为它也会创建0到20之间的空数组元素
此外,如果您传递了错误的索引,它将覆盖所述索引中的任何值
如果要将元素推送到数组的末尾,则不需要指定任何索引。它知道长度并将新元素附加到数组的末尾。但在这里你做不了什么。它总是将新元素推到数组的末尾。类似地,如果要在数组的开头添加元素,可以使用您应该使用array(desiredLength)
。此外,您可能想看看在这种情况下,哪一个是非常可读的,即使您根本不看它