MKW构建千万级高可用企业级Node.js应用无mi

139 阅读2分钟

1. 声明和初始化数组

下载这门课程ZY-》https://www.97yrbl.com/t-1378.html

咱们能够运用默认值(如""、null或 )初始化特定大小的数组0。您或许已经将这些用于一维数组,但怎么初始化二维数组/矩阵呢?

const array = Array(5).fill(''); 
// 输出
(5) ["", "", "", "", ""]

const matrix = Array(5).fill(0).map(()=>Array(5).fill(0)); 
// 输出
(5) [Array(5), Array(5), Array(5), Array(5), Array(5)]
0: (5) [0, 0, 0, 0, 0]
1: (5) [0, 0, 0, 0, 0]
2: (5) [0, 0, 0, 0, 0]
3: (5) [0, 0, 0, 0, 0]
4: (5) [0, 0, 0, 0, 0]
length: 5
仿制代码 仿制代码

2. 找出总和、最小值和最大值

咱们应该利用reduce办法来快速找到根本的数学运算。

const array  = [5,4,7,8,9,2];
仿制代码 仿制代码
array.reduce((a,b) => a+b);
// 输出: 35
仿制代码 仿制代码
  • 最大限度
array.reduce((a,b) => a>b?a:b);
// 输出: 9
仿制代码 仿制代码
  • 最小
array.reduce((a,b) => a仿制代码

3. 对字符串、数字或目标数组进行排序

咱们有内置的办法sort()和reverse()用于对字符串进行排序,但是数字或目标数组呢?

让咱们看看数字和目标的升序和降序排序技巧。

  • 排序字符串数组
const stringArr = ["Joe", "Kapil", "Steve", "Musk"]
stringArr.sort();
// 输出
(4) ["Joe", "Kapil", "Musk", "Steve"]

stringArr.reverse();
// 输出
(4) ["Steve", "Musk", "Kapil", "Joe"]
仿制代码 仿制代码
  • 排序数字数组
const array  = [40, 100, 1, 5, 25, 10];
array.sort((a,b) => a-b);
// 输出
(6) [1, 5, 10, 25, 40, 100]

array.sort((a,b) => b-a);
// 输出
(6) [100, 40, 25, 10, 5, 1]
仿制代码 仿制代码
  • 目标数组排序
const objectArr = [     { first_name: 'Lazslo', last_name: 'Jamf'     },    { first_name: 'Pig',    last_name: 'Bodine'   },    { first_name: 'Pirate', last_name: 'Prentice' }];
objectArr.sort((a, b) => a.last_name.localeCompare(b.last_name));
// 输出
(3) [{…}, {…}, {…}]
0: {first_name: "Pig", last_name: "Bodine"}
1: {first_name: "Lazslo", last_name: "Jamf"}
2: {first_name: "Pirate", last_name: "Prentice"}
length: 3
仿制代码 仿制代码

4. 从数组中过滤出虚假值

Falsy值喜欢0,undefined,null,false,"",''能够很容易地通过以下办法省掉

const array = [3, 0, 6, 7, '', false];
array.filter(Boolean);
// 输出
(3) [3, 6, 7]
仿制代码 仿制代码

5. 对各种条件运用逻辑运算符

如果你想削减嵌套 if…else 或 switch case,你能够简略地运用根本的逻辑运算符AND/OR。

function doSomething(arg1){ 
    arg1 = arg1 || 10; 
// 如果尚未设置,则将 arg1 设置为 10 作为默认值
return arg1;
}

let foo = 10;  
foo === 10 && doSomething(); 
// is the same thing as if (foo == 10) then doSomething();
// 输出: 10

foo === 5 || doSomething();
// is the same thing as if (foo != 5) then doSomething();
// 输出: 10
仿制代码 仿制代码

6. 删去重复值

您或许已经将indexOf()与 for 循环一起运用,该循环回来第一个找到的索引或较新的includes()从数组中回来布尔值 true/false 以找出/删去重复项。 这是咱们有两种更快的办法。

const array  = [5,4,7,8,9,2,7,5];
array.filter((item,idx,arr) => arr.indexOf(item) === idx);
// or
const nonUnique = [...new Set(array)];
// 输出: [5, 4, 7, 8, 9, 2]