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}]
复制代码
学习到无聊,去看国家宝藏去了