1、生成数组
当你需要要生成一个 0-99 的数组
方案 1
const createArr = (n) => Array.from(new Array(n), (v, i) => i) const arr = createArr(100) // 0 - 99 数组
方案 2
const createArr = (n) => new Array(n).fill(0).map((v, i) => i) createArr(100) // 0 - 99数组
2、数组去重
const removeDuplicates = list => [...new Set(list)] removeDuplicates([0, 0, 2, 4, 5]) // [0,2,4,5]
3、多数组取交集
const intersection = (a, ...arr) => [...new Set(a)].filter((v) => arr.every((b) => b.includes(v))) intersection([1, 2, 3, 4], [2, 3, 4, 7, 8], [1, 3, 4, 9]) // [3, 4]
4、进制转换
将 10 进制转换成 n 进制,可以使用 toString(n)
const toDecimal = (num, n = 10) => num.toString(n) // 假设数字10要转换成2进制 toDecimal(10, 2) // '1010'
将 n 进制转换成 10 进制,可以使用 parseInt(num, n)
// 10的2进制为1010 const toDecimalism = (num, n = 10) => parseInt(num, n) toDecimalism(1010, 2)
5、删除无效属性
当你需要删除一个对象中的属性值为 null 或 undefined 的所有属性
const removeNullUndefined = (obj) => Object.entries(obj).reduce((a, [k, v]) => (v == null ? a : ((a[k] = v), a)), {}); removeNullUndefined({name: '', age: undefined, sex: null}) // { name: '' }
6、反转对象键值 当你需要将对象的键值对交换
const invert = (obj) => Object.keys(obj).reduce((res, k) => Object.assign(res, { [obj[k]]: k }), {}) invert({name: 'jack'}) // {jack: 'name'}
7、uuid
const uuid = (a) => (a ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid)) uuid()
8、获取 cookie
当你需要将 cookie 转换成对象
const getCookie = () => document.cookie .split(';') .map((item) => item.split('=')) .reduce((acc, [k, v]) => (acc[k.trim().replace('"', '')] = v) && acc, {}) getCookie()
9、强制等待
当你需要等待一段时间,但又不想写在 setTimeout 函数中,造成回调地狱
const sleep = async (t) => new Promise((resolve) => setTimeout(resolve, t)); sleep(2000).then(() => {console.log('time')});
标签:10,const,进制,代码,实用,单行,num,obj,new From: https://www.cnblogs.com/xiaozhangzhang/p/17565331.html