Skip to main content

JavaScript Cheet Sheet

番风Less than 1 minute

字符串操作

编码相关

charCodeAt codePointAt
有点像 rust 中的字符操作, 不解释了

let char = '𠮷';
console.log(char.charCodeAt(0)); // 输出: 55362
console.log(char.codePointAt(0)); // 输出: 134071

数组操作

迅速构建一个数组

let a = Array.from({length:26},(x,_)=>0)//
let a = Array.from({length:26},(x,index)=>index)//构造一个0-25数组

字典操作

字典和数组结合 (如何给字典 index 属性)
看这道 mid-451, 我觉得很合适

var frequencySort = function (s) {
  let hashMap = {};
  [...s].forEach((char) => {
    if (hashMap[char]) {
      hashMap[char]++;
    } else {
      hashMap[char] = 1;
    }
  });
  let arr = Object.entries(hashMap);
  arr.sort((a, b) => b[1] - a[1]);
  let result = arr.map(([char, freq]) => char.repeat(freq)).join("");
  return result;
};

循环操作

循环字符串

  1. 普通 for 循环
for(let i = 0;i<s.length;i++)
  1. for... of 循环
for (const char of s){}
  1. Array.prototype.forEach 循环
    注意!!!!!!
    forEach 中的 return 只会退出当前步骤!!!!,
    如果需要返回判断的话不要使用 forEach
Array.from(str).forEach(char => console.log(char));
[...str].forEach(char => console.log(char));

排序

[].sort((a,b)=>a-b) 尤其是数字比大小特别要注意!!

求和

[].reduce((a,b)=>a+b,0)