博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记录数组常用方法汇总
阅读量:6277 次
发布时间:2019-06-22

本文共 2423 字,大约阅读时间需要 8 分钟。

1.往数组中添加项

var colors = ['red','green','black']console.log(colors) // ['red','green','black']colors.push('white') // 往数组最后添加项console.log(colors) // ['red','green','black','white']colors.unshift('yellow') // 往数组前添加项console.log(colors) // ['yellow','red','green','black','white']复制代码

2.从数组中删除项

colors.pop() // 删除数组最后一项console.log(colors) // ['yellow','red','green','black']colors.shift() // 删除数组第一项console.log(colors) // ['red','green','black']复制代码

3.数组转化为字符串join(),并不会改变原数组,而是返回一个字符串

console.log(colors.join('-')) // red-green-blackconsole.log(colors) // ['red','green','black']复制代码

4.数组的排序方法sort(),可以传参数也可以不传参数,如果不传参数的话,数组会按照字符编码的顺序进行排序(并不会按照数值大小来排序)。如果我们想实现按照数值大小来排序的话,必须传入参数,这里我们可以传入一个排序函数来解决这个问题

var arr = [1, 3, 5, 15, 10, 9]arr.sort()console.log(arr) // [1,10,15,3,5,9]arr.sort(function(a,b){   return a-b})console.log(arr) // [1,3,5,9,10,15]复制代码

5.将数组内的所有项反转,末尾项成功第一项,reverse()

arr.reverse()console.log(arr) // [15,10,9,5,3,1]复制代码

6.查找元素在数组中的位置,indexOf(item,[start]),lastIndexOf(item,[start]),indexOf从数组前开始查找到第一个匹配的项的位置,lastIndexOf从数组后开始查找到第一个匹配的项的位置,这两种方法都不会改变原数组

var arr = [1,3,4,4,3,7,3,2,1]arr.indexOf(1) // 0arr.lastIndexOf(1) // 8arr.indexOf(1,1) // 8arr.lastIndexOf(1,2) // 0复制代码

7.数组操作方法concat()、slice()、splice()

concat()方法用于连接两个或多个数组,该方法不会改变原数组,而是返回一个被连接数组的副本

var arr = [1,2,3]console.log(arr.concat(4,5)) // [1,2,3,4,5]console.log(arr) // [1,2,3]var arr1 = [5,6,'89']console.log(arr.concat(arr1)) // [1,2,3,5,6,'89']复制代码

slice(start,end)方法,并不会改变原数组

start必须。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始计算起的位置。也就是说,-1指最后一个位置,-2指倒数第二个元素,以此类推。

end可选。规定从何处结束选取,该参数是数组片段结束处的数组下表。如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

返回值:返回一个新的数组,包含从start 到end(不包括该元素)的arrayObject中的元素

var arr = [1,2,3,4,5]console.log(arr.slice(2)) // [3,4,5]console.log(arr.slice(2,4)) // [3,4]cosnole.log(arr) // [1,2,3,4,5]复制代码

splice()有删除,插入,替换的功能

删除

需要两个参数,要删除的第一项的位置和要删除的项数

var arr = ['blue','red','black']var removed = colors.splice(0,2)console.log(arr) // ['black']console.log(removed) // ['blue', 'red']复制代码

插入

需要三个参数:起始位置、0(要删除的项数)和要插入的项

var arr = ['red','green','black']var removed = arr.splice(0,0,'yellow')console.log(arr) // ['yellow','red','green','black']console.log(removed) // []复制代码

替换

需要三个参数:起始位置、要删除的项数和要插入的任意数量的项

var arr = ['red','green','blue']var removed = arr.splice(0,2,'black')console.log(arr) // ['black','blue']console.log(removed) // ['red','green']复制代码

转载于:https://juejin.im/post/5cce44f7e51d456e51614b4d

你可能感兴趣的文章
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>
26.Azure备份服务器(下)
查看>>
mybatis学习
查看>>
LCD的接口类型详解
查看>>
Spring Boot Unregistering JMX-exposed beans on shutdown
查看>>
poi 导入导出的api说明(大全)
查看>>
Mono for Android 优势与劣势
查看>>
将图片转成base64字符串并在JSP页面显示的Java代码
查看>>
js 面试题
查看>>
sqoop数据迁移(基于Hadoop和关系数据库服务器之间传送数据)
查看>>
腾讯云下安装 nodejs + 实现 Nginx 反向代理
查看>>
Javascript 中的 Array 操作
查看>>