当前位置:网站首页>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(); // 返回数组本身 属于浅拷贝
边栏推荐
- Bubble sort [C language]
- Matlab learning and actual combat notes
- The first simple case of GNN: Cora classification
- Contiki source code + principle + function + programming + transplantation + drive + network (turn)
- GCC compilation options
- ESP学习问题记录
- RT-Thread的main线程“卡死”的一种可能原因及解决方案
- Time slice polling scheduling of RT thread threads
- 嵌入式启动流程
- 物联网系统框架学习
猜你喜欢
C语言回调函数【C语言】
Gallery之图片浏览、组件学习
E-commerce data analysis -- salary prediction (linear regression)
ESP8266使用arduino连接阿里云物联网
MySQL realizes read-write separation
【ESP32学习-2】esp32地址映射
Detailed explanation of Union [C language]
电商数据分析--薪资预测(线性回归)
ESP学习问题记录
Comparaison des solutions pour la plate - forme mobile Qualcomm & MTK & Kirin USB 3.0
随机推荐
RuntimeError: cuDNN error: CUDNN_ STATUS_ NOT_ INITIALIZED
Apprentissage automatique - - régression linéaire (sklearn)
Variable parameter principle of C language function: VA_ start、va_ Arg and VA_ end
Gallery's image browsing and component learning
JS正则表达式基础知识学习
Pytorch four commonly used optimizer tests
ESP学习问题记录
Oppo vooc fast charging circuit and protocol
B tree and b+ tree of MySQL index implementation
互聯網協議詳解
imgcat使用心得
Matlab learning and actual combat notes
嵌入式启动流程
FTP文件上传文件实现,定时扫描文件夹上传指定格式文件文件到服务器,C语言实现FTP文件上传详解及代码案例实现
Togglebutton realizes the effect of switching lights
ESP8266通过Arduino IDE连接Onenet云平台(MQTT)
PyTorch四种常用优化器测试
AMBA、AHB、APB、AXI的理解
inline详细讲解【C语言】
ESP8266通过arduino IED连接巴法云(TCP创客云)