我正在参加「掘金·启航计划」
前言
由于时间和工作的关系,好久没有发文了,现在让我们接着之前的知识点继续来。。。
正文
一行代码实现乘法
通过 Array.from() 方法和 Array.keys() 方法生成一个数组,并利用 reduce() 方法计算乘积。
const multiply = (a, b) => Array.from(Array(b).keys()).reduce((acc, curr) => acc + a, 0);
console.log(multiply(5, 3)); // 15
一行代码实现判断对象是否为空
对象的constructor属性用于返回创建该对象的函数,也就是我们常说的构造函数。
返回类型:Array、Boolean、Date、Function、Number、Object、String
const isEmptyObject = obj => Object.keys(obj).length === 0 && obj.constructor === Object;
console.log(isEmptyObject({})); // true
console.log(isEmptyObject({ name: 'xiaoming' })); // false
实现数字千位分隔符
使用正则表达式和 replace() 方法实现数字千位分隔符。
const formatNumber = num => num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
console.log(formatNumber(123456)); // 123,456
实现一个模板字符串函数
通过正则表达式和 replace() 方法实现一个模板字符串函数,用于替换字符串中的占位符。
const template = (str, data) => str.replace(/\$\{(.*?)\}/g, (match, p1) => data[p1]);
let name = 'xiaoming';
let age = 18;
console.log(template('My name is ${name} and I am ${age} years old.', { name, age }));
// My name is xiaoming and I am 18 years old.
利用 Array.some() 方法实现多重条件判断
利用 Array.some() 方法和箭头函数实现多重条件判断。
let age = 20;
let isStudent = true;
console.log([age >= 18, isStudent].some(val => val === false)); // false
创建一个简单的随机字符串
使用 Math.random() 方法生成随机数,然后将其转换为字符串。
const randomString = length => Array.from({ length }, () => Math.floor(Math.random() * 36).toString(36)).join('');
console.log(randomString(10)); // "tsbeypf48d"
结语
大家都学会了么?让我们一起期待下一次的更新~