当前位置:网站首页>JS数组常用方法的分类、理解和运用
JS数组常用方法的分类、理解和运用
2022-07-06 09:17:00 【阿波次嘚】
var arr = [‘a’,‘b’,‘c’,‘d’,‘e’];
栈方法 push
arr.push(‘f’,‘e’); // 向数组末尾添加一个或多个元素 返回数组长度 !会改变原数组
栈方法 pop
arr.pop(); //数组长度减一, 删除并返回最后一个数组元素 !会改变原数组
队列方法shift
arr.shift(); //数组长度减一, 删除并返回第一个数组元素 !会改变原数组
队列方法unshift
arr.unshift(‘f’,‘e’); // 向数组开始添加一个或多个元素 返回数组长度 !会改变原数组
排序方法reverse
arr.reverse(); //用于反转并返回原数组 会改变原数组
排序方法sort
arr.sort() //按数组元素的字符编码顺序进行排序 ‘a’.charCodeAt() //97
参数是函数 默认升序排序 !会改变原数组
函数返回值与0比较 :
返回值大于0 a会移动到b的后面 ;等于零位置不变 ;小于0 a移动到b的前面
//升序
arr.sort(function(a,b){
return a - b;
});
arr.sort((a,b)=>{
return a - b;
});
//降序
arr.sort(function(a,b){
return b - a;
});
arr.sort((a,b)=>{
return b - a;
});
迭代方法forEach
//遍历数组每一个元素 value:当前元素值 index:当前元素下标 array:当前数组 无返回值 不会改变原数组
arr.forEach(function(value,index,array){
});
迭代方法every
只要有一次结果为false 就返回false 否则返回true 类似于 &&
//可用于判断空值
迭代方法some
只要有一次结果为false 就返回false 否则返回true 类似于 ||
//可用于判断元素是否存在
迭代方法map
所有结果的返回值组成一个新数组 不会改变原数组
迭代方法filter
用于过滤掉结果为false 的数组元素 剩下的元素组成一个新数组 不会改变原数组
查找方法indexOf lastIndexOf
indexOf
根据元素值查找数组中元素的指定位置 返回位置下标 如果没有指定元素则返回 -1
参数1 :要查找的元素
参数2 : 从什么位置开始找 ---- 1:从下标为1的位置开始往后找 -1:从倒数第一个元素的位置开始往后找 注意:查找元素的时候不会进行隐式类型转换 而是 === 比较
lastIndexOf
与indexOf查找顺序相反 其他一样
缩减方法reduce reduceRight
reduce
第一个参数 是函数 第二个参数是 拼接的时候 在最终返回值的前面加的字符 加可以理解为 拼接和运算
prev(上一次调用的返回值,或初始值)
now(数组中当前被处理的元素)
index (当前元素在数组中的索引)
arr (调用 reduce 的数组)
可以用于计算数组元素总和 元素拼接等等。。。
reduceRight
reduceRight与reduce执行顺序相反 其他一样
其他方法join
arr.join(‘-’); //根据join参数将数组元素进行拼接 // ‘a-b-c-d-e’
其他方法concat
arr.concat([1,2]); //做数组拼接 不会改变原数组!
arr.concat([1,2],[3,4]); //多个数组拼接用逗号分割
concat还有一个重要的作用 :做深拷贝
其他方法slice
arr.slice(0,2);// 提取指定位置的数组元素 返回新数组 不会改变原数组
arr.slice(-1);// 提取倒数第一个元素 ‘以及’ 往后的所有元素。
参数1:开始提取的下标 (提取包括当前下标元素)
参数2:结束提取的下标 (不包括结束位置的下标元素)
其他方法splice
arr.splice(0,2);// 删除原数组元素 会改变原数组 返回删除的数组元素组成的数组。
arr.splice(0,0);//插入数据 将第二个参数长度:设为0
参数1:开始删除的元素下标 (删除包括当前下标元素)
参数2:要删除的长度
参数3:删除后向原数组添加新数组或单个值
toString
arr.toString(); // ‘a,b,c,d,e’ 数组中有null 和 undefined 会转成 ‘’,
toLocaleString
arr.toLocaleString(); // ‘a,b,c,d,e’ 数组中有null 和 undefined 会转成 ‘’,
var a = 1;
a.toLocaleString(‘zh’,{style:‘percent’}) // 100%
var a = 10000000;
a.toLocaleString(); //‘10,000,000’ 将数字每三个加一个逗号
valueOf
var arr1 = arr.valueOf(); // 返回数组本身 属于浅拷贝
边栏推荐
- FTP文件上传文件实现,定时扫描文件夹上传指定格式文件文件到服务器,C语言实现FTP文件上传详解及代码案例实现
- MP3mini播放模块arduino<DFRobotDFPlayerMini.h>函数详解
- 【ESP32学习-2】esp32地址映射
- XML file explanation: what is XML, XML configuration file, XML data file, XML file parsing tutorial
- Selective sorting and bubble sorting [C language]
- ESP8266通过arduino IED连接巴法云(TCP创客云)
- I2C总线时序详解
- MySQL realizes read-write separation
- Vert. x: A simple login access demo (simple use of router)
- A possible cause and solution of "stuck" main thread of RT thread
猜你喜欢
I2C bus timing explanation
Fashion Gen: the general fashion dataset and challenge paper interpretation & dataset introduction
Several declarations about pointers [C language]
Detailed explanation of 5g working principle (explanation & illustration)
PyTorch四种常用优化器测试
Machine learning -- linear regression (sklearn)
Basic use of pytest
物联网系统框架学习
高通&MTK&麒麟 手機平臺USB3.0方案對比
Pytorch four commonly used optimizer tests
随机推荐
RT-Thread API参考手册
FTP文件上传文件实现,定时扫描文件夹上传指定格式文件文件到服务器,C语言实现FTP文件上传详解及代码案例实现
Esp8266 uses Arduino to connect Alibaba cloud Internet of things
arduino UNO R3的寄存器写法(1)-----引脚电平状态变化
Matlab learning and actual combat notes
I2C总线时序详解
Kaggle competition two Sigma connect: rental listing inquiries (xgboost)
uCOS-III 的特点、任务状态、启动
Redis面试题
Reno7 60W超级闪充充电架构
MySQL START SLAVE Syntax
使用LinkedHashMap实现一个LRU算法的缓存
关键字 inline (内联函数)用法解析【C语言】
XML file explanation: what is XML, XML configuration file, XML data file, XML file parsing tutorial
Rough analysis of map file
ToggleButton实现一个开关灯的效果
MongoDB
Time slice polling scheduling of RT thread threads
Programmers can make mistakes. Basic pointers and arrays of C language
Priority inversion and deadlock