![cc42f0e2a25592de64f886533e9bdca8.png](https://img-blog.csdnimg.cn/img_convert/cc42f0e2a25592de64f886533e9bdca8.png)
数组去重
使用ES6中提供的Set数据结构
const arr = [1, 2, 3, 4, 3, 2, 1]
const newArr = [...new Set(arr)]
// 或
const newArr = Array.from(new Set(arr))
console.log(newArr)
使用数组中的reduce方法
const arr = [1, 2, 3, 4, 3, 2, 1]
const newArr = arr.reduce((result, item) => {
if (!result.includes(item)) {
result.push(item)
}
return result
}, [])
console.log(newArr)
变量交换
假设现在有a,b两个变量,在不依赖于临时变量的情况下,如何快速的实现变量之间的值交换呢?
解构赋值
let a = 1
let b = 2
[a, b] = [b, a]
console.log(a, b) // a --> 2, b --> 1
位异或
let a = 1
let b = 2
// 使用位异或运算
a = a ^ b
b = b ^ a
a = a ^ b
// 或直接交换
a = a + b
b = a - b
a = a - b
console.log(a, b) // a --> 2, b --> 1
借用数组
let a = 1
let b = 2
b = [a, a = b][0]
console.log(a, b) // a --> 2, b --> 1
字符串分组
将字符转以特定的字符进行分组, 比如按照空格,逗号,分号字符进行分组