ES6 => new Set || map||...解构赋值

本文介绍JavaScript中的多种实用技巧,如数组去重、对象合并、数组映射与过滤等,帮助开发者提升代码效率。

1. new Set() 数组去重

 let arr = [1, 3, 3, 4];
 let set = new Set(arr);
 let newArr = Array.from(set)// Array.from方法可以将 Set 结构转为数组。
 console.log(newArr) // [1, 2, 3]
复制代码

2. Object.assign()

Object.assign()也是ES6中提供的对象的扩展方法,不过其只能拷贝一层,比如:

let obj1 = { a: 1 };
let obj2 = { b: 2 };
let obj3 = Object.assign({}, obj1, obj2);
console.log(obj3); // {a: 1, b: 2}
复制代码

3. map()

map方法用于遍历数组,有返回值,可以对数组的每一项进行操作并生成一个新的数组, 有些时候可以代替for和forEach循环,简化代码,比如:

 let arr3 = [1, 2, 3, 4, 5];
 let newArr3 = arr3.map((e, i) => e * 10); // 给数组每一项乘以10
console.log(newArr3); // [10, 20, 30, 40, 50]
复制代码

4. filter()

filter方法同样用于遍历数组,顾名思义,就是过滤数组 在每一项元素后面触发一个回调函数,通过判断,保留或移除当前项,最后返回一个新的数组,比如:

let arr4 = [1, 2, 3, 4, 5];
let newArr4 = arr4.filter((e, i) => e % 2 == 0); // 取模,过滤余数不为0的数
console.log(newArr4); // [2,4]
复制代码

5. some()

some方法用于遍历数组,在每一项元素后面触发一个回调函数,只要一个满足条件就返回true, 否则返回false,类似于 || 比较,比如:

let arr5 = [{ result: true }, { result: false }];
let newArr5 = arr5.some((e, i) => e.result); // 只要一个为true,即为true
console.log(newArr5); // true
复制代码

6.every()

every方法用于遍历数组,在每一项元素后面触发一个回调函数,只要一个不满足条件就返回false, 否则返回true,类似于 && 比较,比如:

let arr6 = [{ result: true }, { result: false }];
let newArr6 = arr6.every((e, i) => e.result); // 只要一个为false,即为false
console.log(newArr6); // false
复制代码

7. ~~运算符

~符号用在JavaScript中有按位取反的作用,~~即是取反两次,而位运算的操作值要求是整数,其结果也是整数,所以经过位运算的都会自动变成整数,可以巧妙的去掉小数部分,类似于parseInt,比如:

let a = 1.23;
let b = -1.23;
console.log(~~a); // 1
console.log(~~b); // -1
复制代码

8. || 运算符

巧妙的使用 || 运算符我们可以给变量设置默认值,比如:

let c = 1;
let d = c || 2; // 如果c的值为true则取存在的值,否则为2
console.log(d); // 1
复制代码

9.ES6 …运算符

…运算符是ES6中用于解构数组的方法

//可以用于快速获取数组的参数
let [num1, ...nums] = [1, 2, 3];
console.log(num1); // 1
console.log(nums); // [2, 3]
复制代码
//复制数组
const a1 = [1,2];
const a2 = [...a1];
console.log(a2) // [1,2]
复制代码
// 合并数组
var arr1 = ['a', 'b'];
var arr2 = ['c'];
var arr3 = ['d', 'e'];
console.log([...arr1,...arr2,...arr3]) // ["a", "b", "c", "d", "e"]
复制代码

10.ES6 find

find() 用来查找第一个符合条件的值,如果没有符合条件的,则返回 underfind

const a4 = [1,3,4,6,7,8,9,0]
const a5 = a4.find(n => n>7)
console.log(a5) // 8
复制代码

11.ES6 findIndex

findIndex() 用来查找第一个符合条件值的索引

const a6 = [1,3,4,6,7,8,0]
const a7 = a6.findIndex(n => n>7)
console.log(a7)  // 5
复制代码

12. slice map concat ...语法

//    slice() 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。
//    原始数组不会被修改。
let arr9 = [1,3,4,6]
let arr10 = [{"a":1,"b":2}]
let arr11 =arr10.slice() // 如果省略 begin,则 slice 从索引 0 开始。
console.log(arr11) // {a: 1, b: 2}


arr11.map((item,i)=>{
// item i 这两个参数的顺序不分前后
console.log(item); //{a: 1, b: 2}
console.log(i); //0
})
console.log(arr11) // {a: 1, b: 2}


let arr12 = arr9.concat(arr11)

console.log(arr12) // [1, 3, 4, 6, {a: 1, b: 2}]


//下面的是通过ES6 的结构赋值语法
let arr13 = [...arr9,...arr11]

console.log(arr13)// [1, 3, 4, 6, {a: 1, b: 2}]

复制代码

学习到无聊,去看国家宝藏去了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值