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]