在JavaScript中创建一个单值数组

Create a single value array in JavaScript

本文关键字:一个 单值 数组 JavaScript 创建      更新时间:2023-09-26

为什么下面的代码显示undefined ?我们不允许创建一个只有一个值的数组吗?输入两个值不会显示此错误。这是Javascript的问题吗?

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

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

by new Array(21)你实际上创建了一个包含21个元素的数组。

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

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

你可以用Array.of

创建一个数组

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

伙计们,答案很简单:

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

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

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

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

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

这是我的解决方案。

    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的空数组,然后如果你push;你只需将新条目添加到数组的末尾新的数组长度将是n+1你的新数组将是这样的array = [Empty*21,new item ]

使用array构造函数创建数组并且只有一个数字元素的可能解决方案是使用fill方法:

new Array(1).fill(4)// [ 4 ]

将用一个静态值(在本例中为4)填充所构造数组的所有元素。

注意fill()只在支持ES6的浏览器中起作用