JavaScript —— 极简主义
本文介绍数组相关的属性和操作方法,数组的内容相对较多,也是在开发和面试过程中最最经常遇到的,同时存在部分知识点也是容易混淆或过段时间容易记忆不清晰等问题。本篇文章我们依旧以突出重点,便于理解和记忆的方式为原则进行总结归纳。
喜欢的朋友可以点关注,点关注,不迷路哦~
let arr = [1, 2, 3];
特点:一属性 & 多方法
1、属性 length
arr.length; // 3
2、多方法
1)增
arr.push(4); // [1, 2, 3, 4],返回值为:数组的新长度4 arr.unshift(0); // [0, 1, 2, 3],返回值为:数组的新长度4 let arr1 = [5, 6]; let arr2= [7, 8]; arr.contact(4, 5); // [1, 2, 3, 4, 5] arr.contact(arr1); // [1, 2, 3, 5, 6] arr.contact(arr1, arr2); // [1, 2, 3, 5, 6, 7, 8] console.log(arr, arr1, arr2); // arr, arr1, arr2这三个数组的值不会发生改变
小结:push()和unshift()都会修改原始数组,返回值为数组的新长度;而contact()不会修改原始数组,且contact()可以连接两种参数——数值 vs 数组。
2)删
arr.pop(); // [1, 2],返回值为:3 arr.shift(); // [2, 3],返回值为:1
小结:pop()和shift()都会修改原始数组,且返回值为所删除的那一项。
3)改
// startIndex 起始索引值,必须 // amount 删除的个数,必须,但是可默认为所有! // item 增加项,可选 arr.splice(startIndex, amount, item1, ..., itemX) 返回值 arr的值 arr.splice(); // [] [1, 2, 3] arr.splice(0); // [1, 2, 3] [] arr.splice(0, 1); // [1] [2, 3] arr.splice(0, 0, 9); // [] [9, 1, 2, 3] arr.splice(0, 1, 9); // [1] [9, 2, 3] arr.splice(0, 2, 7, 8, 9); // [1, 2] [7, 8, 9, 3]
小结: splice()会修改原始数组,返回值为数组。且虽第二参数是必须的,但可以不写,会默认为起始索引值后面的所有。第二参数为0时,只添加,不删除;不为0时,先删除,后添加;起到了增删的双重作用。
4)查
arr.indexOf(3); // 2 arr.includes(3); // true
5) 截取
arr.slice(start, end); [ start, end ) arr.slice(); // [1, 2, 3],可用于浅拷贝! arr.slice(1); // [2, 3] arr.slice(1, 2); // [1] console.log(arr); // [1, 2, 3],不改变原始数组
小结:slice()不会修改原始数组,返回值为截取得到的数组。不传任何参数时,可以用作浅拷贝一个数组;且当第二参数不传时,截取到数组的结尾。
6)数据类型转换
arr.toString(); // "1,2,3" arr.join(); // "1,2,3" arr.join(""); // "123" arr.join("-"); // "1-2-3"
小结: 数据类型发生转换的情况,原始数组均不会发生改变。
总结:本文contact()连接、slice()截取这两种方法不会改变原始数组;
除此之外的增、删、改方法均会修改原始数组!
点关注,不迷路~
同时,便于查看历史文章。