在JavaScript中创建单个值数组

问题描述 投票:28回答:7

为什么以下代码显示undefined?我们不允许创建具有单个值的数组吗?放置两个值不会显示此错误。这是Javascript的问题吗?

<script>
var tech = new Array(21);
alert(tech[0]);
</script>
javascript arrays
7个回答
48
投票

new Array(21)创建一个长度为21的数组。如果要创建一个由数字组成的单值数组,请使用方括号,[21]

var tech = [ 21 ];
alert(tech[0]);

如果要动态填充数组,请使用.push方法:

var filler = [];
for(var i=0; i<5; i++){
    filler.push(i); //Example, pushing 5 integers in an array
}
//Filler is now equivalent to: [0, 1, 2, 3, 4]

当Array构造函数接收一个参数p(一个正数)时,将创建一个由p个元素组成的数组。此功能可用于重复字符串,例如:

var repeat = new Array(10);
repeat = repeat.join("To repeat"); //Repeat the string 9x

7
投票

通过new Array(21),您实际上正在创建一个包含21个元素的数组。

如果你想创建一个单值为'21'的数组,那么它是:

var tech = [21];
alert(tech[0]);

3
投票

伙计们答案就像这样简单:

<script>
var tech = new Array();
tech.push(21);
alert(tech[0]);
</script>

1
投票

上面的例子定义了一个名为tech的数组,有21个位置。你必须这样定义它

var tech = new Array('21');
alert(tech[0]);

0
投票

可以使用push或use括号表示法,传递单个值就像初始化长度一样

var tech = new Array();
tech.push(10);
console.log(tech[0]); 

var tech = new Array(5);
console.log(tech.length);  // length = 5
tech.push(10);  // will add as a 6th element i.e. a[5]
console.log(tech.length);   // length = 6
console.log(tech[0]);   // undefined 
console.log(tech[5]);  // 10 

或者简单的方法

var tech = [10];
console.log(tech[0]); 

0
投票

您可以使用Array.of创建一个带有值的数组

let arr = Array.of(8)
console.log(arr)

0
投票

这是我的解决方案。

    var tech = new Array(); //create an empty array
    tech.push(21); //Append items to the array
    console.log(tech); // console array the array

小心避免这种情况; var array = new Array(n),这会创建一个长度为n的空数组,然后如果你推动;你只需将新项目附加到数组的末尾,新的数组长度将为n+1,你的新数组将看起来像这样array = [Empty*21,new item ]

© www.soinside.com 2019 - 2024. All rights reserved.