js常用小技巧

数组扁平化

const arr = [1, 2, 3, [4, [5, 6, [7,8]]]];
console.log(arr.flat(Infinity));
// [1, 2, 3, 4, 5, 6, 7, 8] console.log(arr.join().split(',')); // ["1", "2", "3", "4", "5", "6", "7", "8"]
console.log(arr.toString().split(',')); // ["1", "2", "3", "4", "5", "6", "7", "8"]

原来join()、toString()函数式可以跨越层级的,于是便有了方式2、 3

 

 

一句代码生成0-100的数组

const arr1 = [...Array(100).keys()] 

 

 

一句代码求字符串反转

 let str = 'hello 秦爱德';
 console.log([...str].reverse().join('')) // 德爱秦 olleh

 

 

计算相同元素出现次数且以键值对形式展示

const names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
const countNames = names.reduce((allName,name) => {
  if (name in allName) {
    allName[name]++;
  } else {
    allName[name] = 1;
  }

  return allName;
}, {});
console.log(countNames);  // {Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}

 

数字补0操作

  function toTwo(value,len = 2) {
    return value.padStart(len,'0');
  }
  console.log(toTwo('8')); // 08

  function newToTwo(value,len = 2) {
    return (`0${value}`).slice(-len);
  }
  console.log(newToTwo(1)); // 01

 

posted @ 2021-03-17 11:36  ltog  阅读(54)  评论(0编辑  收藏  举报