在JavaScript中创建单个值数组

时间:2011-10-20 09:27:54

标签: javascript arrays

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

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

7 个答案:

答案 0 :(得分:46)

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

答案 1 :(得分:6)

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

如果你想创建一个单值&#39; 21&#39;的数组,那么它是:

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

答案 2 :(得分:3)

伙计们答案很简单:

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

可以使用推送或使用括号表示法,传递单个值就像初始化长度

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]); 

答案 5 :(得分:0)

您可以使用Array.of

创建一个带有值的数组

&#13;
&#13;
let arr = Array.of(8)
console.log(arr)
&#13;
&#13;
&#13;

答案 6 :(得分: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 ]