1. 声明和初始化数组
一维数组:
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*/
对象数组:
const matrix = Array(2).fill(0).map(()=>{return{name:''}});
//输出 [{name: ''},{name: ''}]
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<b?a:b); //最小值 输出: 2
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. 删除重复值
您可能已经将 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]
节选自 作者:华为云开发者联盟
链接:https://juejin.cn/post/7068853819135754253
来源:稀土掘金