用JavaScript声明数组的方法是什么
What is the way of declaring an array in JavaScript?
我只是在学习JavaScript,似乎有很多方法可以声明数组。
var myArray = new Array()
var myArray = new Array(3)
var myArray = ["apples", "bananas", "oranges"]
var myArray = [3]
它们的区别是什么,首选的方式是什么?
根据这个网站,以下两条线非常不同:
var badArray = new Array(10); // creates an empty Array that's sized for 10 elements
var goodArray= [10]; // creates an Array with 10 as the first element
正如你所看到的,这两条线做了两件非常不同的事情。如果你如果想要添加多个项目,则badArray将正确初始化,因为Javascript将足够智能知道您正在初始化数组,而不是说明有多少您想要添加的元素。
作者想说的是Array(10)
创建了一个正好有10个元素的数组,而[10]
创建了一一个未定义大小的数组,第0个元素是10吗?或者这意味着什么?
在第一个示例中,您正在制作一个空白数组,与var x = []
相同。第二个例子制作了一个大小为3的数组(所有元素为undefined
)。第三个和第四个例子是相同的,它们都用这些元素组成数组。
使用new Array()
时要小心。
var x = new Array(10); // array of size 10, all elements undefined
var y = new Array(10, 5); // array of size 2: [10, 5]
首选方式是使用[]
语法。
var x = []; // array of size 0
var y = [10] // array of size 1: [1]
var z = []; // array of size 0
z[2] = 12; // z is now size 3: [undefined, undefined, 12]
首选的方法是始终使用带有方括号的文本语法;与Array
不同,它的行为对于任何数量的项目都是可预测的。更重要的是,Array
不是一个关键词,尽管这不是一个现实的情况,但有人可以很容易地覆盖它:
function Array() { return []; }
alert(Array(1, 2, 3)); // An empty alert box
然而,更大的问题是一致性问题。重构代码的人可能会遇到这个函数:
function fetchValue(n) {
var arr = new Array(1, 2, 3);
return arr[n];
}
事实证明,只需要fetchValue(0)
,所以程序员放弃其他元素并中断代码,因为它现在返回undefined
:
var arr = new Array(1);
声明:
var myArr = ["apples", "oranges", "bananas"];
使用它:
document.write("In my shopping basket I have " + myArr[0] + ", " + myArr[1] + ", and " + myArr[2]);
有很多方法可以创建数组。
声明和初始化数组的传统方式如下:
var a = new Array(5); // declare an array "a", of size 5
a = [0, 0, 0, 0, 0]; // initialize each of the array's elements to 0
或者。。。
// declare and initialize an array in a single statement
var a = new Array(0, 0, 0, 0, 0);
如果创建的数组的主要特征是它的长度,而不是每个索引的值,那么将数组定义为var a=Array(length);
是合适的。
例如
String.prototype.repeat= function(n){
n= n || 1;
return Array(n+1).join(this);
}
您可以像这样声明
const [alice, bob] = [1, 2]
console.log(alice) // 1
console.log(bob) // 2
相关文章:
- 打破承诺链的好方法是什么
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- knex:根据结果创建数组的合适方法是什么
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 使用Modernizr检测移动设备最可靠的方法是什么
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 用javascript修复这个JSON对象字符串最干净的方法是什么
- 让会话值可用于JavaScript的好方法是什么
- 从AngularJs获取谷歌地图对象的正确方法是什么
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么
- 列出没有 mysql 的元素的最佳方法是什么
- 克服错误的更优雅的方法是什么:需要对象说明符.当通过JXA通过Messages发送SMS时,参数没有对象说明符
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 在 Javascript 中实现解耦代码/回调的正确方法是什么?
- 使用Javascript,获取元素的方法是什么,基于打开和关闭标记之间的文本
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 直接在DOM事件处理程序中调用作用域函数的最短方法是什么