数组
数组是值的有序集合。
每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引
数组是无类型的,动态的,稀疏的
使用[ ]操作符来访问数组中的一个元素。
方括号中是一个返回非负整数值的任意表达式。
使用该语法既可以读又可以写数组的一个元素
创建数组
数组字面量
let empty = [];
let primes = [2, 3, 5, 7, 11];
let misc = [1.1, true, "a"];
let base = 10;
let numbers = [base, base + 1, base++, ++base];
let b = [
[1, { x: 1, y: 2 }],
[2, { x: 3, x: 4 }],
];
let count = [1, , 3];
let others = [, ,];
创建数组
构造函数Array( )
let a1 = new Array(); //相当于[]
let a2 = new Array(10);
let a3 = new Array(1, 2, 3, "四", "五", "六");
读写数组元素
使用[ ]操作符来访问数组中的一个元素。
方括号中是一个返回非负整数值的任意表达式。
使用该语法既可以读又可以写数组的一个元素。
let a = ["world"];
let value = a[0];
a[1] = 3.14;
i = 2;
a[i] = 3;
a[i + 1] = 4;
a[a[i]] = a[0];
a["10"] = "hi";
a["ten"] = "hoo";
a[-2] = -2;
a[1.11] = 1.11;
稀疏数组
包含从0开始的不连续索引的数组。
可以用Array()构造函数或简单地指定数组的索引值大于当前的数组长度来创建稀疏数组。
let a1 = [, , ,];
let a2 = new Array(4);
console.log(1 in a1, 1 in a2);
a1[10] = 100;
a1[8] = undefined;
for (let a in a1) {
console.log(a, a1[a]);
}
for (let b of a1) {
console.log(b);
}
Array.of( ),将一组值转换为数组。
let nums = Array.of(...arr, 7, 8, 9);
console.log(nums);
sort( )
将数组中的元素排序并返回排序后的数组。
let data = [22, 4, 111, 30];
let sdata = data.sort();
console.log(data, sdata);
concat( )
创建并返回一个新数组,它的元素包括调用concat()的原始数组的元素和concat()的每个参数`
let a1 = arr.concat(10, 20);
let a2 = arr.concat([10, 20]);
let a3 = arr.concat([10, 20], [30, 40]);
let a4 = arr.concat([10, [20, 30]]);
console.log(a1);
console.log(a2);
console.log(a3);
console.log(a4);
console.log([...arr, 10, 20]);
slice( )
返回指定数组的一个片段或子数组。
它的两个参数分别指定了片段的开始和结束的位置。
let sub_arr = arr.slice(3, 8);
console.log(sub_arr);
sub_arr = arr.slice(1, -1);
console.log(sub_arr);