Set 对象的作用
1 数组去重 去掉重复的 (String / Number)
const arr1 = [0, 0, 1, 3, 4, 5, 2, 3, 7]
const removeDuplicates = (arr) => [...new Set(arr)]
console.log(removeDuplicates(arr1)) // [0, 1, 3, 4, 5, 2, 7]
**2 并集 **
const a = [1, 2, 3]
const b = [2, 3, 4]
const c = [4, 5, 6]
const union1 = new Set([...a, ...b])
const union2 = new Set([...a, ...b, ...c])
console.log(union1); // {1, 2, 3, 4}
console.log(union2); // {1, 2, 3, 4, 5, 6}
3 交集
const d = new Set([1, 2, 3])
const e = new Set([4, 3, 2])
const intersect = new Set([...d].filter(item => e.has(item)))
console.log(intersect); // {2, 3}
** 4 差集**
const f = new Set([1, 2, 3])
const g = new Set([4, 3, 2])
const difference = new Set([...f].filter(item => !g.has(item)))
console.log(difference); // {1}
** 5 判断一个数组是否为空**
const a = [1,2,3]
const inNotEmpat = arr => Array.isArray(arr) && arr.length > 0;
console.log(inNotEmpat) // true
** 6 合并两个数组**
const arr1 = [1,2,3]
const arr2 = [4,5,6]
const arr3 = (a,b) => a.concat(b)
const arr4 = (a,b) => [...a,...b]
console.log(arr3(arr1,arr2) // [1,2,3,4,5,6]
7 判断一个数是奇数还是偶数
const isEven = num => num % 2 === 0
console.log(isEven(1)) // false
console.log(isEven(2)) // true
8 获取一个数组的平均值
const arr = [1,2,3,4]
const everage = (...args) => args.reduce((a,b) => a + b ) / args.length
console.log(everage(arr)) // 2.5
** 9 使用 JSON .stringify 格式化输出**
const obj = {
age:18,
name:"星期天",
height:180
}
console.log(JSON.stringify(obj,null,4))
10 字符串数字 快速转 number
const string = "1"
const num = +string
console.log(typeof num) // number
11 获取对象的全部属性值 使用 Object.values
const deps = {
'采购部':[1,2,3],
'人事部':[5,8,12],
'行政部':[5,14,79],
'运输部':[3,64,105],
}
let member = Object.values(deps).flat(Infinity);
console.log(member) // [1,2,3,5,8,12,5,14,79,3,64,105]
12 找出数组中 总和 最大 最小值
const arr = [1,2,3,4,5];
const total = arr.reduce((prev, curr) => prev + curr); // 总和 15
const max = arr.reduce((per,cur) => per > cur ? per : cur); // 最大值 5
const min = arr.reduce((per,cur) => per < cur ? per : cur); // 最小值 1
13 数组排序
const arr = [2,3,4,5,1,8,4];
const newArr = arr.sort((a,b) => a - b);
console.log(newArr); // [ 1, 2, 3, 4, 4, 5, 8 ]
14 数组中过滤掉虚假值
const arr = [3,1,'',false]
const newArr = arr.filter(item => item)
console.log(newArr)
15数组去重
const arr = [1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9];
const newArr = arr.filter((item,index) => {
return arr.indexOf(item) === index;
})
console.log(newArr); // [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
16 表示字符串在源头
const str = 'Hello World'
console.log(str.startsWith('Hello')); // true
17 表示在尾部
const str = 'Hello World'
console.log(str.endsWith('d')) // true
18 将一个字符串重复 n 次
const str = 'Hello World'
console.log(str.repeat(2)) // Hello WorldHello World
19 去掉字符串的前后空格
const str = ' Hellow '
console.log(str.trimStart()) // 'Hellow '
console.log(str.trimEnd()); // ' Hellow'
20 Object.keys 的使用
let obj = {name:"张三",age:25,address:"深圳",getName:function(){}}
const objKey = Object.keys(obj) // 返回 key 值
// console.log(objKey);
let arr = [1,2,3,4,5,6]
const arrKey = Object.keys(arr) // 返回下标
// console.log(arrKey);
let str = '123456字符串'
const strKey = Object.keys(str) // 返回下标
// console.log(strKey);
// 常用
const person = {name:'星期天',age:18,address:'广州',getName:function(){}}
Object.keys(person).map(key=>{
console.log(person[key])
})