Open frankFree opened 5 years ago
// 下面例子全部用arr作为示例 var arr = [1, 2, 3, 2, 3, 7, 8, 3, 4] // 数组去重 var arr = [...new Set(arr)]; // 数组排序 排序可以使用sort 默认是字典序,并且可以根据需要定制,需要深入掌握 arr.sort((a, b) => a -b) // 求最大值,使用扩展运算符... max = Math.max.call(...arr) max = Math.max.apply(null, arr) // 复制数组 arr2 = [...arr] arr2 = arr.concat() arr2 = arr.slice() // 迭代输出 arr.forEach((i) => console.log(i)) // 变量赋值 善用结构 const [a, b, c, d, e] = [2, 3,4, 5, 7]; // a=2, b=3, c=4, d=5, e=6 // 交换变量值 let a = 1, b = 2; [a, b] = [b, a] // 字符串中的字符是无法交换的 let str = 'ab'; [str[0], str[1]] = [str[1], str[0]]; // 无效,"ab" // 不过可以将字符串拆成字符数组后就可以交换了 str = str.split(''); // ["a","b"] [str[0], str[1]] = [str[1], str[0]]; // ["b","a"] // 求数组的一半长度 halfLen = arr.length >> 1; // 不过需要注意右移运算符>>优先级别加号+还低,例如 console.log(3 + (5 - 3 >> 1)); // 2 console.log(3 + ~~((5 - 3) / 2)); // 4 // ~~等价于Math.floor(),|0也等价于Math.floor() halfLen = ~~(a.length / 2); halfLen = a.length / 2 | 0; // 判断奇偶 evenNum & 1 === 0; // 偶数 oddNum & 1 === 1; // 奇数 // 善用异或 5 ^ 5 === 0; 5 ^ 5 ^ 6 ^ 6 ^ 7 === 7; // 判断数是否是2的幂次方 num & num - 1 === 0;