上期简单的说了一下数组,这期切入正题:数组的方法。
- Array.length 检测数组的长度,增删会改变原数组;
//可读可写,赋值则会从后面增删数组元素
var arr = [1,2,3,4];
console.log(arr.length); //4 可读
arr.length = 5;
console.log(arr); //[1,2,3,4,empty item] 可增
arr.length = 3;
console.log(arr); //[1,2,3] 可删
- Array.concat()拼接数组,返回新的数组,不改变原数组;
var arr = [1,2];
console.log(arr.concat(5)); //[1,2,5] 拼接数字
console.log(arr.concat([7,3])); //[1,2,7,3] 拼接多位数字
console.log(arr); //[1,2] 不改变原数组
- Array.reverse()倒叙数组,会改变原数组;
var arr = [1,2,3,4,5];
console.log(arr.reverse()); //[ 5, 4, 3, 2, 1 ] 倒叙数组
console.log(arr); //[ 5, 4, 3, 2, 1 ] 会改变原数组
- Array.indexOf()通过元素找下标,没找到返回-1;
var arr = [1,3,5,2,7,1,9,4];
console.log(arr.indexOf(1)); //0 下标从0开始计数 找到并不会接着继续找
console.log(arr.indexOf(1,1)); //5 从下标为1的元素开始找
conso.log(arr.indexOf(8)) //-1 找不到返回-1
- Array.lastIndexOf()从后往前通过元素找下标,找不到返回-1,用法同上;
- Array.join()把数组转为字符串。不改变原数组;
var arr = [1,3,5,2,7,1,9,4];
console.log(arr.join()); //'1,3,5,2,7,1,9,4' 参数为拼接符 不传参默认为逗号
console.log(arr.join('')); //'13527194' 空引号为不使用拼接符
console.log(arr); //[1,3,5,2,7,1,9,4] 原数组不改变
- Array.toString();数组转为字符串使用逗号拼接,不改变原数组;
var arr = [1,3,5,2,7,1,9,4];
console.log(arr..toString()); //'1,3,5,2,7,1,9,4'
- Array.slice()数组截取,不改变原数组;
var arr = [1,3,5,2,7,1,9,4];
console.log(arr.slice(1,3)); //[3,5] 第一个参数为截取起始下标,第二个参数为结束下标
consol.log(arr); //[1,3,5,2,7,1,9,4] 不改变原数组
- Array.splice()数组截取,会改变原数组
var arr = [1,3,5,2,7,1,9,4];
console.log(arr.splice(1,3,0,4)); //[3,5,2]
//第一个参数为截取起始下标,第二个参数为截取的个数,之后的参数为插入原数组的元素
console.log(arr); //[ 1, 0, 4, 7, 1, 9, 4 ] 原数组被改变