优雅的js,持续更新

2020-06-29  本文已影响0人  张Piers

解构赋值

删除对象不需要的属性的值
const obj = {
    name: 'detanx',
    age: 24,
    height: 180
}
// 删除height
const { height, ...otherObj } = obj;
// otherObj => {name: 'detanx', age: 24}

交换两个变量的值
let x = 1, y = 2;
[x, y] = [y, x]
// x: 2,y: 1

在解构中使用别名
const object = { number: 10 }
const { number } = object
// 使用别名
const { number: otherNumber } = object
console.log(otherNumber) //10

字符串

判断目标字符是否包含某个字符串
let str1 = 'abcdefg';
let str2 = 'bcd';

// 一般写法
if (str1.indexOf(str2) !== -1) {
  return true;
} else {
  return false;
}
// 优雅写法
return str1.includes(str2); // str1.includes(str2,2) //从角标为2的位置开始判断
 

字符串补全
// 从左边开始补全,时间格式补全
'5'.padStart(2, '0'); // '05'
'04'.padStart(10, 'YYYY-MM-DD'); // 'YYYY-MM-04'
//从右边补全
'abc'.padEnd(10, "foo");   // "abcfoofoof"

数组操作

复杂数组筛选
let arr1 = ['1', '2', '3', '4'];
let arr2 = [{id: '1', name: 'a'}, {id: '5', name: 'b'}, {id: '6', name: 'c'}];
let result;
// 一般写法
arr1.forEach(item => {
    arr2.forEach((obj) => {
        if (item === obj.id) {
            result = obj;
            return;
        }
    })
});
// 优雅写法
arr1.some((item) => {
    return result = arr2.filter(obj => obj.id === item);
})
console.log(result); // {id: '1', name: 'a'}

上一篇下一篇

猜你喜欢

热点阅读