3、数组
JavaScript的Array可以包含任意数据类型,并通过索引来访问每个元素。
要取得Array的长度,直接访问length
属性
Array.length;
Array可以通过索引把对应的元素修改为新的值,因此,对 Array 的索引进行赋值会直接修改这个Array。
arr = [1,2,3];
arr[0] = 4;
alert(arr); // [4,2,3]
3.1 indexOf
Array也可以通过 indexOf() 来搜索一个指定的元素的位置,如果存在便返回 index ,否则返回的便是-1,这个函数可以帮助判断一个数组里面是否包含某个数据。
arr.indexOf(4); // 0
// 用来帮助判断数组是否存在重复元素
// 注意,map()方法是对数组中的每个val执行相应的回调函数
arr.map(item => {
return arr.indexOf(item) === item.index ? true : false;
})
3.2 slice
slice()就是对应 String 的 substring() 版本,它截取Array的部分元素,然后返回一个新的Array。
arr.slice(0,2); // 从索引0开始,到索引2结束,但不包括索引2: [4,2]
3.3 push 和 pop
push() 向Array的末尾添加若干元素,pop() 则把Array的最后一个元素删除掉。
arr.push(5); // [4,2,3,5]
arr.pop(); // [4,2,3]
3.4 unshift 和 shift
往 Array 的头部添加若干元素,使用 unshift() 方法, shift() 方法则把 Array 的第一个元素删。
arr.unshift(6); // [6,4,2,3]
arr.shift(); // [4,2,3]
3.5 sort
sort() 可以对当前Array进行排序,它会直接修改当前Array的元素位置,数组在原数组上进行排序,不生成副本
。
arr.sort(); [2,3,4]
注意:数组的 sort 比较的时是按照ASCII码,所以对于两位数以上的数字排序,就会比较第一位的ASCII码,就会出错,所以一般使用 sort 进行排序时,都需要重写函数。
arr.sort((a,b) => {
return a-b; // 从小到大
return b-a; // 从大到小
})
3.6 reverse
reverse()把整个Array的元素反转,特别适用于颠倒数组(字符串也行,只不过需要把字符串先用 split 转换成数组)
arr.reverse(); // [4,3,2]
3.7 splice
splice()函数可以同时删除、增加
arr.splice(0,1,6,7); // 从索引0开始删除一个元素,增加6、7元素 [3,2,6,7]
3.8 concat
concat()方法把当前的Array和另一个Array连接起来,并返回一个新的Array
var arr2 = arr.concat([8,9]); // [3,2,6,7,8,9]
concat()方法并没有修改当前Array,而是返回了一个新的Array
3.9 join
把当前 Array 的每个元素都用指定的字符串连接起来,用来将字符数组转换成字符串。
arr.join('+'); // '3+2+6+7+8+9'
arr.join(''); // '326789'
3.10 fill
fill用于初始化数组的填充
let arr = new Array(10).fill(0); // [0,0,0,0,0,0,0,0,0,0]
3.11 Array.from
用于类数组类型向数组的转换
let arr = Array.from(); // 将 set / string / map 转换成 数组
二维数组
let arr = [[1,2,3],[4,5,6],[7,8,9];
arr.length // 二维数组的行数 i
arr[0].length // 二维数组的列数 j
本文来源廖雪峰老师教程的笔记,有疑惑可以直接访问廖雪峰老师教程:https://www.liaoxuefeng.com/wiki/1022910821149312/1023022043494624