网站首页 > 基础教程 正文
在Javascript中,数组是很常用的类型,也是经常使用到的类型之一。熟练掌握数组的操作方法,会在工作中,更加得心应手。
声明,初始化一个空的数组
- 声明一个没有长度的空数组
let aa = [];
- 声明一个长度为5的空数组
let aa = Array(5); // [empty * 5]
- 声明一个长度为5,内容为''的数组
let aa = Array(5).fill(''); // ['', '', '', '', '']
计算数组的总和,最大,最小值
计算数组的总和或者最值,一般情况下,会通过for循环的方式计算。但是数组中提供的reduce()方法,是可以快速计算的。
- 总和
let aa = [ 2, 3, 1, 6 ];
aa.reduce( (a, b) => a+ b ); // 12
- 最大值
let aa = [ 2, 3, 1, 6 ];
aa.reduce( (a, b) => a > b ? a : b); // 6
- 最小值
let aa = [ 2, 3, 1, 6 ];
aa.reduce( (a, b) => a < b ? a : b); // 1
注:reduce()方法还有更强大的功能,详情可以参考Array.prototype.reduce() - JavaScript | MDN
对数组的排序
对数组的排序主要分为对字符串数组的排序,对数字数组的排序,对对象数组的排序
- 字符串数组的排序
let aa = ['jk', 'gh', 'as'];
<!-- 正序 -->
aa.sort(); // ['as', 'gh', 'jk']
<!-- 返序 -->
aa.reverse(); // ['jk', 'gh', 'as']
- 数字数组的排序
let aa = [2, 5, 3, 7];
<!-- 正序 -->
aa.sort((a, b) => a - b) // [2, 3, 5, 7]
<!-- 返序 -->
aa.sort((a, b) => b - a); // [7, 5, 3, 2]
- 对象数组的排序
let aa = [
{ first_name: 'Lloer', last_name: 'Jamf' },
{ first_name: 'Pig', last_name: 'Bodine' },
{ first_name: 'Pirate', last_name: 'Prentice' }
];
aa.sort((a, b) => a.last_name.localeCompare(b.last_name));
<!--
输出:
(3) [{…}, {…}, {…}]
0: {first_name: "Pig", last_name: "Bodine"}
1: {first_name: "Lloer", last_name: "Jamf"}
2: {first_name: "Pirate", last_name: "Prentice"}
length: 3
-->
<!-- a.localeCompare(target) 用本地特定的顺序来比较两个字符串 -->
删除重复值
在一个数组中,常常会有重复值,但是有时又不需要这些重复值,则可以使用以下的方法,效率比较高
- 使用ES6中的Set降重
let aa = [1, 2, 3, 1, 5, 2];
Array.from(new Set(aa)); // [1, 2, 3, 5]
// or
[...new Set(aa)] // [1, 2, 3, 5]
// from()方法将一个类数组转化为一个数组
- 使用filter(),indexOf()组合的方式
let aa = [1, 2, 3, 1, 5, 2];
aa.filter((item, idx, arr) => arr.indexOf(item) === idx); // [1, 2, 3, 5]
打乱数组
随机打乱数组,可以使用Math.random()方法
let aa = [2,4,1,6,4]
aa.sort(() => {
return Math.random() - 0.5;
})
// 会随意打乱数组
// (5) [4, 2, 6, 4, 1]
// (5) [6, 2, 4, 1, 4]
过滤一些虚假值
在数组中常会有0,数字,undefine,null,fasle,"",''等类型,使用下面的方法就可以很容易的过滤出虚假值
let aa = [1, 2, null, true, false, '', null];
aa.filter(Boolean); // [1, 2, true]
猜你喜欢
- 2024-10-12 王者编程大赛之三—最大价值(01背包)
- 2024-10-12 numpy通过形状或值创建ndarray numpy改变形状
- 2024-10-12 NumPy常用的方法汇总 numpy的简单例子
- 2024-10-12 PHP桶排序:高效处理大数据集的算法解析与实现
- 2024-10-12 JavaScript ES6 - 数组扩展 javascript脚本文件的扩展名为
- 2024-10-12 JavaScript数组构造from函数 javascript 数组函数
- 2024-10-12 数据的增强 数据增强技术
- 2024-10-12 8个有用的JavaScript技巧 excel打印技巧8个必备excel打印技巧
- 2024-10-12 scala 使用指南,降低新手入门难度
- 2024-10-12 常用的JavaScript代码技巧 (二)布尔、数组
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)