数组
2021/8/5 6:06:26
本文主要是介绍数组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
第三章 数组
以下是操作数组的常用方法
初始化数组
最方便的方式
let daysOfWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
查询长度
daysOfWeek.length;
求斐波那契数列前20个数
const fibonacci = []; fibonacci[1] = 1; fibonacci[2] = 1; // 声明了数组 for (let i = 3; i < 20; i++) { fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]; } for (let i = 1; i < fibonacci.length; i++) { console.log(fibonacci[i]); }
添加元素
末尾插入元素方法
平平无奇法
numbers[numbers.length] = 10;
push
方法
numbers.push(11, 12);
开头插入元素
unshift
方法
numbers.unshift(-1, -2);
删除元素
数组末尾删除元素
pop
方法
numbers.pop();
数组删除开头元素
shift
方法
numbers.shift();
任意位置添加或删除元素
splice方法
number.splice(5, 3, 2, 3, 4);
- 第一个参数 插入元素的索引值
- 第二个参数 删除元素的个数 不删填0
- 第三个参数往后 添加到数组里的值
数组的核心方法
MsaEW5
Page 55
数组合并
concat
方法
const zero = 0; const positiveNumber = [1, 2, 3]; const negativeNumber = [-3, -2, -1]; let numbers = negativeNumber.concat(zero, positiveNumber); console.log(numbers); // -3, -2, -1, 0, 1, 2, 3
函数迭代
每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。
every
方法
every 作用是每一个numbers数组成员都能符合函数isEven
就返回true 否则返回false
let result1 = numbers.every(isEven); console.log(result1);
some
方法
some 是numbers数组里有一个满足就会返回true 否则返回false
let result2 = numbers.some(isEven); console.log(result2);
forEach
方法
和for类似
numbers.forEach(x => console.log(x % 2 === 0));
map
方法
JavaScript 还有两个会返回新数组的迭代方法。第一个是 map。
const myMap = numbers.map(isEven);
数组 myMap
里的值是:[false, true, false, true, false, true, false, true, false, true, false, true, false, true, false]。它保存了传入 map 方法的 isEven
函数的运行结果。这样就很容易知道一个元素是否是偶数。比如,myMap[0]
是 false,因为 1 不是偶数;而 myMap[1]
是 true,因为 2 是偶数。
filter
方法
它返回的新数组由使函数返回 true 的元素组成。
const evenNumbers = numbers.filter(isEven);
reduce
方法
接收 4 个参数:上一个归并值、当前项、当前项的索引和数组本身。
let values = [1, 2, 3, 4, 5]; let sum = values.reduce((prev, cur, index, array) => prev + cur); alert(sum); // 15
排序元素
元素反转
numbers.reverse();
元素排序(按照字符串进行比较)
numbers.sort();
比较数字(如果没有指明 compareFunction
,那么元素会按照转换为的字符串的诸个字符的Unicode位点进行排序)
numbers.sort((a, b) => a - b);
写一个比较函数
let numbers = [12, 32, 43, 53, 22, 1]; function compare(a, b) { if (a < b) { return -1; } if (a > b) { return 1; } return 0; } numbers.sort(compare); // sort方法接受compareFunction作为参数
在 b 大于 a 时,这段代码会返回负数,反之则返回正数。如果相等的话,就会返回 0。也就是说返回的是负数,就说明 a 比 b 小,这样 sort 就能根据返回值的情况对数组进行排序。
搜索
indexOf
方法
返回与参数匹配的第一个元素的索引
lastIndexOf
方法
返回与参数匹配的最后一个元素的索引
ES5 find
和findIndex
方法
find
返回第一个满足的值
没有返回undefined
findIndex
返回第一个满足的索引
没有返回-1
ES7 includes
方法
如果数组存在某个元素,返回true
如果数组不存在某个元素,返回false
输出数组为字符串
toString
把所有元素输出为字符串
join
把所有元素输出为以分隔符隔开
let numbers = [1, 2, 4, 5, 6, 7, 8, 9, 10]; console.log(numbers.join('-'));
这篇关于数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22项目:远程温湿度检测系统
- 2024-12-21《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
- 2024-12-21后台管理系统开发教程:新手入门全指南
- 2024-12-21后台开发教程:新手入门及实战指南
- 2024-12-21后台综合解决方案教程:新手入门指南
- 2024-12-21接口模块封装教程:新手必备指南
- 2024-12-21请求动作封装教程:新手必看指南
- 2024-12-21RBAC的权限教程:从入门到实践
- 2024-12-21登录鉴权实战:新手入门教程
- 2024-12-21动态权限实战入门指南