JavaScript小技巧 - 数组篇

 

去重

巧用Set特性
[JavaScript] 纯文本查看 复制代码
?
1
const arr = [1, 2, 2, 3, 4, 7, 7]const uniqueArr = [...new Set(arr)]console.log(uniqueArr)// [1, 2, 3, 4, 7]某一个位置插入元素

 

改变原数组
 
[JavaScript] 纯文本查看 复制代码
?
1
const arr = [1, 2, 3, 5, 6, 7]arr.splice(3, 0, 4)console.log(arr)// [1, 2, 3, 4, 5, 6, 7]

 

不改变原数组
 
[JavaScript] 纯文本查看 复制代码
?
1
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 = [12345]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] 纯文本查看 复制代码
?
1
const arr = [1, 2, 3, 4, 5]const indexToBeRemoved = 3arr.splice(indexToBeRemoved, 1)console.log(arr)// [1, 2, 3, 5]获取数组最后一个元素

 

改变原数组
 
[JavaScript] 纯文本查看 复制代码
?
1
const arr = [1, 2, 3, 4, 5]const lastElement = arr.pop()console.log(lastElement)// 5console.log(arr)// [1, 2, 3, 4]

 

不改变原数组
 
[JavaScript] 纯文本查看 复制代码
?
1
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] 纯文本查看 复制代码
?
1
const arr = [1, 2, 3, 4, 5]arr.length = 0console.log(arr)// []console.log(arr[0])// undefined

生成一定长度的数组

 

[JavaScript] 纯文本查看 复制代码
?
1
const newArr = new Array(10)console.log(newArr)// [ <10 empty items> ]


两个数组的交集

 

[JavaScript] 纯文本查看 复制代码
?
1
const arr1 = [1, 2, 3, 4]const arr2 = [2, 3]const intersectedArr = arr1.filter(item1 => arr2.includes(item1))console.log(intersectedArr)// [2, 3]


合并多个数组

 

[JavaScript] 纯文本查看 复制代码
?
1
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] 纯文本查看 复制代码
?
1
const mixedArr = [0, “blue”, “”, NaN, 9, true, undefined, “white”, false]const trueArr = mixedArr.filter(Boolean);console.log(trueArr)// [“blue”, 9, true, “white”]


求和



 

[JavaScript] 纯文本查看 复制代码
?
1
const nums = [1, 2, 3, 4, 5]const sum = nums.reduce((currSum, num) => currSum + num)console.log(sum)// 15

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值