黑马程序员技术交流社区
标题: 【成都校区】-- JavaScript小技巧 - 数组篇 [打印本页]
作者: 小刀葛小伦 时间: 2019-12-12 11:50
标题: 【成都校区】-- JavaScript小技巧 - 数组篇
本帖最后由 小刀葛小伦 于 2019-12-12 11:57 编辑
去重巧用Set特性
[JavaScript] 纯文本查看 复制代码
const arr = [1, 2, 2, 3, 4, 7, 7]const uniqueArr = [...new Set(arr)]console.log(uniqueArr)// [1, 2, 3, 4, 7]某一个位置插入元素
改变原数组
[JavaScript] 纯文本查看 复制代码
const arr = [1, 2, 3, 5, 6, 7]arr.splice(3, 0, 4)console.log(arr)// [1, 2, 3, 4, 5, 6, 7]
不改变原数组
[JavaScript] 纯文本查看 复制代码
const arr = [1, 2, 4, 5]const indexNeededToInsert = 2const newArr = [...arr.slice(0, indexNeededToInsert), 3, ...arr.slice(indexNeededToInsert)]console.log(newArr)// [1, 2, 3, 4, 5]console.log(arr)// [1, 2, 4, 5]删除某一个位置的元素
不改变原数组
const arr = [1, 2, 3, 4, 5]const indexToBeRemoved = 3const filteredArr = arr.filter((_, index) => index !== indexToBeRemoved)console.log(filteredArr)// [1, 2, 3, 5]console.log(arr)// [1, 2, 3, 4, 5]改变原数组
[JavaScript] 纯文本查看 复制代码
const arr = [1, 2, 3, 4, 5]const indexToBeRemoved = 3arr.splice(indexToBeRemoved, 1)console.log(arr)// [1, 2, 3, 5]获取数组最后一个元素
改变原数组
[JavaScript] 纯文本查看 复制代码
const arr = [1, 2, 3, 4, 5]const lastElement = arr.pop()console.log(lastElement)// 5console.log(arr)// [1, 2, 3, 4]
不改变原数组
[JavaScript] 纯文本查看 复制代码
const arr = [1, 2, 3, 4, 5]const lastElement = arr.slice(-1)[0]console.log(lastElement)// 5console.log(arr)// [1, 2, 3, 4, 5]
slice第一个参数如果是负数表示从后面开始数起的第几个元素,-1表示倒数第一个元素。
清空数组[JavaScript] 纯文本查看 复制代码
const arr = [1, 2, 3, 4, 5]arr.length = 0console.log(arr)// []console.log(arr[0])// undefined
生成一定长度的数组
[JavaScript] 纯文本查看 复制代码
const newArr = new Array(10)console.log(newArr)// [ <10 empty items> ]
两个数组的交集
[JavaScript] 纯文本查看 复制代码
const arr1 = [1, 2, 3, 4]const arr2 = [2, 3]const intersectedArr = arr1.filter(item1 => arr2.includes(item1))console.log(intersectedArr)// [2, 3]
合并多个数组
[JavaScript] 纯文本查看 复制代码
const arr1 = [1, 2, 3]const arr2 = [4, 5, 6]const arr3 = [7, 8, 9]const mergedArr = [...arr1, ...arr2, ...arr3]console.log(mergedArr)// [1, 2, 3, 4, 5, 6, 7, 8, 9]
移除数组的虚假(falsy)值
[JavaScript] 纯文本查看 复制代码
const mixedArr = [0, “blue”, “”, NaN, 9, true, undefined, “white”, false]const trueArr = mixedArr.filter(Boolean);console.log(trueArr)// [“blue”, 9, true, “white”]
求和
[JavaScript] 纯文本查看 复制代码
const nums = [1, 2, 3, 4, 5]const sum = nums.reduce((currSum, num) => currSum + num)console.log(sum)// 15
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |