💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[toc] #### 1.增删:改变原数组操作 ``` push: 返回新数组长度 unshift: 添加至开头,返回新数组长度 pop: 删除最后一位,返回删除的元素 shift: 删除第一位,返回删除的元素 ``` #### 2.修改:改变原数组 splice(inde, count, value, value),返回被删除的部分组成的数组 ```js let arr = [1, 2, 3] // index 为0则为新增 arr.splice(1, 0, 4, 5, 6) // [1, 4, 5, 6, 2, 3] let res = arr.splice(1, 1) console.log(arr, res); // [1, 3] , [2] ``` #### 3.获取子数组,不改变原数组 slice(start, end),左闭又开 ```js let arr = [1, 2, 3, 4, 5] console.log(arr.slice(1, 3)); // [2,3] console.log(a.slice(1)) // [2, 3, 4, 5] 只有一个参数且不小于0时,则从此索引开始截取到数组的末尾 console.log(a.slice(1, -1)) // [2, 3, 4] 从第1位截取到倒数第1位 ``` 数组没有substr和substring方法,该方法属于字符串操作 #### 3.查找 indexOf: 返回找到的下标,-1为未找到 lastIndexOf: 从最后开始查找,index值依然从左边开始计算 includes: 返回 true false ```js let arr = [1, 2] arr.includes(2)) // true ``` #### 4.sort排序 + a-b 从小到大排序 ```js a = [31, 22, 27, 1, 9] a.sort((a, b) => { return a - b }) console.log(a) // [1, 9, 22, 27, 31] 按数值大小正序排列 ``` + b-a 从大到小排序 #### 5.拼接数组 concat,返回新数组,不会改变原数组 ```js let arr = [1, 2, 3] let arr2 = [4, 5] console.log(arr.concat(arr2)); // [1, 2, 3, 4, 5] ``` #### 6.数组遍历 ``` forEach((item, index, arr)) map((item, index, arr)):返回新数组 filter((item, index, arr)): 返回符合过滤条件的新数组 ``` every:判断是否每一项都满足条件,只有全部满足才会返回 true,有一项不满足则中断返回false some: 只要有一项满足就会返回 true,some可以中断 ```js var arr = [1, 2, 3, 4, 5] var res= arr.every(function (item, index, a) { return item < 10 }) console.log(res) // true ``` reduce: ```js let res = arr.reduce((pre, current, index, arr) => { return pre + current }, 0) console.log(res); // 6 ``` findIndex:查找满足条件的第一项的index值 ```js let arr = [1, 2, 3, 4, 5] let idx = arr.findIndex(item => { return item > 2 }) console.log(idx); // 2 ``` find: 查找满足条件的第一项 item ```js let item = arr.find(item => { return item > 2 }) console.log(item); // 3 ``` #### 7.fill 方法 fill(value, start, end) 左闭右开 1.fill修改会修改原数组 ```js let arr2 = [1, 2, 3, 4]; arr2.fill(1, 2); // [1, 2, 1, 1] ``` 2.fill创建一个50个内容全为1的数组 ```js const arr3 = new Array(50).fill(1); console.log(arr3); ``` #### 8. flat 数组拍平 不改变原数组 ```js let arr = [1, 2, [3, 4, [5, 6, 7]]]; console.log(arr.flat()); // 默认拍平一层,不改变原数组 [1, 2, '', 3, 4, Array(3)] console.log(arr.flat(Infinity)); // 拍平所有 ```