类数组(arguments, dom, string)
- 可以利用属性名模拟数组的特性
- 可以动态的增长length属性
- 如果强行让类数组调用push方法,则会根据length属性值得位置进行属性的扩充。
function test() { console.log(arguments); } let oLi = document.getElementsByTagName('li') console.log(oLi); test(1, 2, 3)
转字符串的 (toString jion)
let arr2 = [1, 2, [3, 4], 5, [6, [7, 8]]]
console.log(arr2.toString()); //1,2,3,4,5,6,7,8
console.log(arr2.join());
console.log(arr2.join('-'));
toString 可以去掉多维数组 jion 只能去掉一层
堆栈方法(pusp,pop,unshift,shift)
pusp 在数组最后一位添加 返回数组增加后的长度
pop 在数组最后一位删除 返回被删除的值
unshift 在数组第一位添加 返回数组增加后的长度
shift 在数组最后一位删除 返回被删除的值
let arr3 = [1, 2, 3] console.log(arr3, arr3.push(5)); //[1,2,3,5],4 console.log(arr3, arr3.pop()); console.log(arr3, arr3.shift()); console.log(arr3, arr3.unshift(5));
数组排序 (reverse,sort)
/**
* reverse 反序
* sort
* 随机排序
*/
let arr4 = [5, 1, 2, 3, 4] // console.log(arr4, arr4.reverse()); console.log(arr4, arr4.sort((a, b) => { a - b })) // 随机排序 function compate() { return Math.random() - 0.5 } console.log(arr4.sort(compate));
数组拼接(concat)
concat 不能拼接多维数组
let arr5 = [1, 2]
let arr6 = [1, 2]
console.log(arr5.concat(arr6)); //[1,2,1,2]
数组的删改方法
/**
* slice 返回一个新的数组 左闭右开 start end
* splice 操作元数组 返回修或删除的值
* 1位的时候:起始
* 2位:删除的元素个数 如果是不合理的值,则不会删除原数组
* 3位: 插入的值
*/
let arr7 = [1, 2, 3, 4, 5]
// console.log(arr7, arr7.slice(2)); //[3,4]
// console.log(arr7, arr7.slice(1, 3)); //[2,3]
// console.log(arr7, arr7.slice(3, 1)); // 无交集时,返回空的数组 不会反序
// console.log(arr7.slice(-2)); // 从后往前数 [3,4]
// console.log(arr7, arr7.splice(2)) //) [1, 2] [3, 4]
// console.log(arr7, arr7.splice(2, 1))
// console.log(arr7, arr7.splice(2, 3))
// console.log(arr7, arr7.splice(2, 1, 4)) //[1, 2, 4, 4, 5] [3]
// console.log(arr7, arr7.splice(2, -1, 4)) //[1, 2, 4, 4, 5] [3]
// console.log(arr7, arr7.splice(2, -1), 'arr');
数组查找的方法
/**
* indexOf
* lastIndexOf 从右向左
* 返回的值都是一样的,返回元素数组的位置 不存在时返回-1
*/
let arr7=[1,2,3,4]
// console.log(arr7.indexOf(3));
// console.log(arr7.lastIndexOf(3));
数组上的构造函数方法
/**
* Array.of() 用来定义数组 解决es5中Array不合理的地方
* Array.from() //用来把类数组变成数组
*/
console.log(Array(3)); //[]*3 当只有一个参数时,则是指数组的长度
console.log(Array(3, 4));//[3,4]
console.log(Array.of(3));//[3]
fill 填充数组 修改的原数组 第一个填充的数,第二第三是数组起始和结束位置
let arr7 = [0,1,2,3,4]
console.log(arr7, arr7.fill(6, 0, 2));// [6, 6, 2, 3, 4] , [6, 6, 2, 3, 4]
MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array