arr的push,pop,slice.....各种使用方法详细介绍
arr的push,pop,slice…各种使用方法
arr.push(); 向数组的末尾追加元素
会修改原数组
返回值:修改后的length值
可以追加多个
arr[1,2,3]; arr1[4,5,6]; arr2[...arr,...arr1]; // ...扩展运算符,将数组展开
arr.unshift(); 向数组的开头添加元素
- 会修改原数组
- 返回值:修改后的length值
- 可以追加多个
arr.pop(); 删除末尾的元素
- 会修改原数组
- 返回值:被删除的数据
- 只能删除一个
arr.shift(); 开头删除一个元素
- 会修改原数组
- 返回值:被删除的数据
- 只能删除一个
arr.splice(位置,删除元素的个数,要追加的元素); 任意位置添加删除
- 添加或者删除包含对应下标
- 添加数据时:删除元素的个数写0;
- 可以同时删除和添加(先删除,后添加)
- 修改原数组
arr.join(“分隔符”) 使用分隔符将数组数据隔开变为字符串
- 不修改原数组
- 返回值是分隔好的字符串
arr.slice(截取的起始下标,结束下标) 数组的截取
- 截取时,包含起始下标,不包含结束下标
- 不修改原数组
- 返回值是截取到的数组
- 参数可以是负数,负数表示倒数,只传一个参数表示从起始下标截取到最后
arr.concat 多个数组的连接
不修改原数组
返回值是连接之后的新数组
var arr1=[1,2,3]; var arr2=[4,5,6]; console.log(arr1.concat(arr2,[7,8,9]));// 控制台输出 // (9) [1, 2, 3, 4, 5, 6, 7, 8, 9]
arr.indexOf(值); 查找某个值在数组中第一次出现的下标
返回值是数据的下标,没有找到则返回-1
var arr=[1,5,6,99,52,663,22,66,552,123,6,622]; console.log(arr.indexOf(22)); //查找22在arr数组中的位置// 控制台输出 // 6
arr.lastIndexOf(值); 倒叙查找某个值在数组中第一次出现的位置
arr.sort() 数组的排序
如果没有参数,则从字符的编码开始按顺序排
如果有参数,这个参数必须是一个函数(回调函数)这个回调函数有两个参数,分别是a,b
修改原数组
返回值是排序之后的数组
var arr3=[1,5,6,99,52,663,22,66,552,6,622]; arr3.sort(function(a,b){//a-b 正序, //b-a 倒序, return a-b; }) console.log(arr3); // 控制台输出 // (11) [1, 5, 6, 6, 22, 52, 66, 99, 552, 622, 663] //箭头函数 arr.sort((a,b)=>a-b) //正序, arr.sort((a,b)=>b-a) //倒序,//箭头函数 arr3.sort((a,b)=>{return a-b}); arr3.sort((a,b)=>a-b);
arr.forEach() 遍历数组
接收一个回调函数,回调函数第一个参数是 数组值,第二个参数是 下标
var arr3=[1,5,6,99,52,663,22,66,552,6,622]; arr3.forEach(function(value,index){console.log(index,value) }) // 箭头函数 arr3.forEach((value,index)=>{console.log(index,value)});
arr.filter() 过滤(根据条件筛选数组元素)
根据回调函数的返回值进行元素筛选
- 返回值是true,该元素会保留
- 返回值是false,该元素跳过
不修改原数组
返回值是筛选之后的数组
var arr=[1,5,6,99,52,663,22,66,552,123,6,622]; var newArr =arr.filter(function(value,index){return value>100; //筛选arr数组中值大于100的元素; }) console.log(newArr); // 控制台输出 // (4) [663, 552, 123, 622]//箭头函数 var mewArr=arr.filter(v=>v>100);
var person = [ {name: "张三",age:20,sex: "男"}, {name: "李四",age:19,sex: "女"}, {name: "王五",age:22,sex: "男"}, {name: "赵六",age:21,sex: "女"} ]; var x =person.filter(function(value,index){return value.age>20; // 筛选出年龄大于20岁的学生 // return value.sex=="男"; //筛选出男同学 }) console.log(x); // 箭头函数 arr.filter((value,index)=>{return 判断条件})
arr.map() 映射 将数组中的所有数据按照条件改变,形成新数组ying
将回调函数每次的返回值,组成一个新的数组
返回值是映射改变之后的数组
不修改原数组
var arr=[1,5,6,99,52,663,22,66,552,123,6,622]; // var end=arr3.map(function(value,index){// return value*2; //将数组中的所有元素都乘以2返回 // }); // 箭头函数 var end = arr.map((value,index)=>value*2); console.log(end);
arr.some() 判断 根据回调函数的判断条件来选择真假
只要有一个回调函数返回值是true,最终some结果是true;
var arr3=[1,5,6,99,52,663,22,66,552,123,6,622]; var end=arr3.some(function(value,index){return value<500; }); console.log(end); //true//箭头函数 var end=arr3.some(v=>{v<500});
arr.every() 判断 根据回调函数的判断条件来选择真假(与some比较记忆)
只要有一个回调函数返回值是false,最终every结果是false;
var arr3=[1,5,6,99,52,663,22,66,552,123,6,622]; var end=arr3.every(function(value,index){return value<500; }); console.log(end); //false//箭头函数 var end=arr3.some(v=>{v<500});
arr.reverse() 数组倒序
返回修改后的数组
改变原数组
var arr=[1,5,8,6,9,4,2,3]; console.log(arr.reverse()); // (8) [3, 2, 4, 9, 6, 8, 5, 1] console.log(arr); // (8) [3, 2, 4, 9, 6, 8, 5, 1]
Array.from
Array.from
方法用于将两类对象转为真正的数组:类似数组的对象和可遍历的对象(包括 ES6 新增的数据结构 Set 和 Map)var a={length:2,0:'aaa',1:'bbb'}; Array.from(a); //['aaa','bbb'] // 原理:Array.prototype.slice.call(a); var b={length:2}; Array.from(b); //[undefined.undefined]
Array.of
Array.of
方法用于将一组值,转换为数组。Array.of
总是返回参数值组成的数组。如果没有参数,就返回一个空数组。Array.of() // [] Array.of(undefined) // [undefined] Array.of(1) // [1] Array.of(1, 2) // [1, 2]
arr.includes()
用于检查数组是否包含某元素,包含返回true,否则返回false
无法检测对象是否存在
假如只想知道某个值是否在数组中而并不关心它的索引位置,建议使用
includes()。如果想获取一个值在数组中的位置,那么你只能使用indexOf方法。并且includes()可以识别NaN
var arr = [1,2,{name:"张三"}] arr.includes(2) // true arr.includes(4) // false arr.includes({name:"张三"}) // false
可接收俩个参数:要搜索的值,搜索的开始索引
['a', 'b', 'c', 'd'].includes('b') // true ['a', 'b', 'c', 'd'].includes('b', 1) // true ['a', 'b', 'c', 'd'].includes('b', 2) // false
此方法为 ES7新增,兼容性##
arr的push,pop,slice.....各种使用方法详细介绍相关推荐
- java数组如何pop_Js数组的操作push,pop,shift,unshift等方法详细介绍
js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首先来讲一下push和pop方法,这两个方法只会对数组从尾部 ...
- 如何更换安装鸿蒙系统,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...
华为鸿蒙系统2.0如何进行安装?现在已经可以安装鸿蒙系统2.0,但是你不清楚安装,下面就让浏览器小编为大家带来,鸿蒙系统2.0安装方法详细介绍. 部分更新了华为鸿蒙OS用户表示,安卓和鸿蒙的应用软件都 ...
- 鸿蒙系统可以安装的浏览器,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...
华为鸿蒙系统2.0如何进行安装?现在已经可以安装鸿蒙系统2.0,但是你不清楚安装,下面就让浏览器小编为大家带来,鸿蒙系统2.0安装方法详细介绍. 部分更新了华为鸿蒙OS用户表示,安卓和鸿蒙的应用软件都 ...
- php ucenter home登录,UCenter Home 2.0 安装方法详细介绍
本教程为大家介绍 UCenter Home 2.0 的安装方法(以虚拟主机为例).在安装 UCenter Home 2.0 之前,请确认在服务器上已经安装过 UCenter ,UCenter 的安装方 ...
- 怎么使用小爱同学音响_小爱音箱mini怎么样如何使用 小爱音箱mini使用方法详细介绍...
小爱音箱mini怎么样如何使用?相信小伙伴们一定很好奇,小米音响mini首发仅需99元,下面小编为大家带来了小爱音箱mini使用方法详细介绍,感兴趣的小伙伴赶紧跟着小编一起来看看吧. 小爱音箱mini ...
- python定义数组的方法_Python数组定义方法详细介绍
本文实例讲述了Python数组定义方法.分享给大家供大家参考,具体如下: Python中没有数组的数据结构,但列表很像数组,如: a=[0,1,2] 这时:a[0]=0, a[1]=1, a[[2]= ...
- CreateFile函数使用方法详细介绍
CreateFile The CreateFile function creates or opens the following objects and returns a handle that ...
- 经典IDEF系统分析方法详细介绍
经典IDEF系统分析方法详细介绍 (转载) IDEF是ICAM DEFinition method 的缩写,是美国空军在70年代末80年代初ICAM(Integrated Computer Aided ...
- vi使用方法详细介绍
vi使用方法详细介绍 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版 ...
最新文章
- [初级]深入理解乐观锁与悲观锁
- vue 加载体验优化
- 基于Xml 的IOC 容器-寻找入口
- 20 张图揭开内存管理的迷雾,瞬间豁然开朗
- 如何创建一个最小的串口、TTY设备包括虚拟控制台,串口以及伪终端设备的驱动程序
- Git Pull Failed:Could not read from remote repository
- Hive 中类SQL语言中的 oder by,gruop by的区别
- IntelliJ IDEA中项目界面右上角中没有SVN工具按钮
- 针式打印机 使用链式纸打印 如何配置纸张参数
- 微信小程序+轮播图+弹窗等设置
- 泰国8日自助游攻略(普吉+清迈)
- 外贸收款方式精辟分析 1
- 第六章 - 图像变换 - 卷积(cvFilter2D)
- 步进电机驱动器控制转速和圈数
- python数据框元素的性质_Pandas基础:文件读取与写入、Series和Dataframe、常用基本函数、排序...
- 高手处理事情的十二个方法,普通人学到三招就很厉害了
- GitHub清华、北大、浙大、上海交大计算机系项目整理分享
- 铁威马F2-210配西数红盘,不仅是NAS那么简单
- 05.去,走你想要的人生——有条理地生活:秩序即是力量(笔记)
- Budgie Desktop v8 发布,改进菜单和面板
热门文章
- 形容谣言的四字词语_描写传递信息的四字词语
- 软考中级哪一门比较好过?
- 【多人会议功能】uniapp - 微信小程序 - 腾讯云
- php设置延迟代码执行,PHP实现延迟执行程序
- 数据可视化什么意思?
- html 判断text相等,实用的28个js验证
- 猫和老鼠手游的python代码_猫和老鼠手游猫鼠通用技巧讲解 赶紧进来好好向大佬们学习学习...
- u盘插linux电脑不好使,u盘插电脑没反应怎么办的几种真正解决方式
- 历届蓝桥杯Scratch编程省赛 初级 中级 青少年编程比赛省赛真题解析【持续更新 已更新至35题】
- Win系统 - Windows10 该内存不能为 read