博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript的数组方法和操作
阅读量:6925 次
发布时间:2019-06-27

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

元素添加和删除

  • √为原数组改变,×为原数组不变,※不常用
  • push():给数组的末尾添加一个或多个元素,返回新添加的元素 √
var arr = [2,4,5];arr.push(3,5,6);console.log(arr);//[2, 4, 5, 3, 5, 6]复制代码
  • unshift():给数组的开头添加一个或多个元素,返回新数组的长度 √
var arr = [2,4,5];arr.unshift(3,5,6);console.log(arr);//[3, 5, 6,2, 4, 5]复制代码
  • concat():用于连接1个或多个数组,返回连接或克隆的新数组 ×
var arr = [2,4,5];console.log(arr.concat());//[2, 4, 5]console.log(arr.concat(9,7,8));//[2, 4, 5,9,7,8]var arr2 = [1,23,43];console.log(arr.concat(9,7,8));//[2, 4, 5, 1, 23, 43]复制代码
  • pop():和push对应,但功能相反,用于删除最后一个元素,返回删除的元素 √
var arr = [2,3,5];console.log(arr.pop());//5复制代码
  • shift():与unshift相对应,但功能相反,用于删除第一个元素,返回删除的元素 √
var arr = [2,3,5];console.log(arr.shift());//2复制代码
  • slice 和 splice
    • slice(n,m):从索引n开始获取到m处(不包含m),返回获取的新数组 ×
    var arr = [2,3,5];console.log(arr.slice(0));//[2,3,5]console.log(arr.slice(1,2));//[3,5]复制代码
    • splice(n,m):从索引n开始移除m个元素,返回移除的元素数组 √
    var arr = [2,3,5,6,7,8];console.log(arr.splice(1,3));//[3, 5, 6]复制代码
    • splice(n,m,x):从索引n开始移除m个元素,将新的x元素添加到这,返回移除的 √
    var arr = [2,3,5,6,7,8];console.log(arr.splice(1,3,0));//[3, 5, 6]复制代码
    • splice(n,0,m):从索引n开始,移除0个元素,将新的x元素添加到这,返回空数组 √
    var arr = [2,3,5,6,7,8];console.log(arr.splice(1,3,0));//[]复制代码
  • toString():该方法用于将一个逻辑转换为字符串,无参数,返回结果 ×
var arr = [2,4,5,6,7,9]console.log(arr.toString());//"2,4,5,6,7,9"复制代码

排序方法

  • reverse():将数组倒着排序,无参数,返回倒排后的数组 √
var arr = [2, 4, 5, 6, 7, 9];console.log(arr.reverse());//[9, 7, 6, 5, 4, 2]复制代码
  • sort():将数字或字母根据Unicode编码进行排序,无参数,返回排序后结果 √
    • 纯数字排序则不写参数,直接调用该方法
    var arr = [9, 7, 6, 5, 4, 2];console.log(arr.sort());//[2, 4, 5, 6, 7, 9]复制代码
    • 将数组从小到大排序(10以上),从大到小 b-a
    var arr = [2, 14, 5, 61, 7, 19];arr.sort(function(a,b){    return a-b})console.log(arr);//[2, 5, 7, 14, 19, 61]复制代码

数组转换

  • join():将一个数组用指定分隔符分隔,参数分隔符(默认逗号),返回最后的字符串 ×
var arr = [2,3,4,5];console.log(arr.join("-"));//2-3-4-5复制代码
  • split():将字符串按片段分隔创建数组,和join功能相反,默认的逗号创建
var str = "2:3:4:5:6";console.log(str.split(":")); //["2", "3", "4", "5", "6"]复制代码
  • toLocaleString():将数组转为本地字符串,和toString类似,此方法用特定的分隔符来将生产的字符串链接起来 ※
  • valueOf():返回Array对象的原数值,通常都是在后台隐式调用,一般不会出现 ※

位置方法

  • indexOf():判断数组中是否存在一个内容,从开头开始检测,返回内容所在索引,没有返回-1 ×
var arr = [2,5,6,7,8,9];console.log(arr.indexOf(2));//0console.log(arr.indexOf(22));//-1复制代码
  • lastIndexOf():判断数组中是否存在一个内容,从尾部开始检测,返回内容所在索引,没有返回-1 ×
var arr = [2,5,6,7,8,9];console.log(arr.lastIndexOf(2));//0console.log(arr.lastIndexOf(22));//-1复制代码

迭代方法

  • every():对数组中的每一项都运行给定的函数直接量,如果该函数对每一项都返回true,则该方法返回true
var arr = [1,2,3,4,5,6,7];var reuslt = arr.every(function(item,index,arr){    return item > 5})console.log(reuslt);//false复制代码
  • filer():对数组中的每一项都运行给定函数,返回该函数返回true的项组成的对象
var arr=[1,2,3,4,5,6,7];var res=arr.filter(function(item,index,arry){    return item>5})console.log(res);//[6, 7]复制代码
  • forEach():对数组中每一项运行给定函数,需要注意的是,这个方法没有返回值,在编码的过程中使用这个方法会带来很多便利,因为该方法就有一个遍历数组元素的作用,不用每次写一个for循环来获取数组的每一项进行操作了
var arr = [2,5,6,7,8,9];arr.forEach(function(item,index,arr){ console.log(item);})//2 5 6 7 8 9复制代码
  • map():对数组中的每一项运行给定的函数,返回每次函数调用的结果组成的数组,这里返回的是数组。
  • some():对数组中的每一项运行给定的函数,如果该函数对任一项都返回true,则该方法返回true,和every()相似,但every()是传入的函数需要每一项都满足条件,some()只要有一项满足就会返回true。
var arr = [1,2,3,4,5,6,7];var reuslt = arr.some(function(item,index,arr){    return item > 5})console.log(reuslt);//true复制代码

缩小方法

reduce():从数组第一项开始逐个遍历,使用指定函数将数组的元素进行整合,只生成单个的值,第一参数是执行化简单的函数,第二个参数是一个传递给函数的初始值

var arr = [1,2,3,4,4,5,6,6];console.log(arr.reduce(function(x,y){    return x+y},0));//28console.log(arr.reduce(function(x,y){return x*y},1))//5040console.log(    arr.reduce(function(x,y){        return (x>y)?x:y    })//6);复制代码
  • reduceRight():该方法的使用和reduce()是一样的,这里可以联想到indexOf方法和 lastIndexOf()方法的关系,即reduceRight()方法是按照数组索引从高到低的处理数组

转载地址:http://lrcjl.baihongyu.com/

你可能感兴趣的文章
15种最佳方式帮你顺利掌握Hadoop技术
查看>>
读写分离
查看>>
David.Zhang:互联网环境下的职业发展
查看>>
emacs+cscope阅读C代码
查看>>
ILGeoNamesSearchController
查看>>
php数据类型(二)
查看>>
推荐几款非常不错的Node.js测试工具
查看>>
js学习笔记
查看>>
汇编语言程序设计读书笔记(GAS版)
查看>>
微博舆情监测
查看>>
Flink 幕后之内存管理
查看>>
排序算法一 插入
查看>>
9.3 国际化处理标签
查看>>
Spring使用jdbcTemplate
查看>>
[翻译] 通过WebRTC技术实现点对点通信
查看>>
09-利用思维导图梳理JavaSE-Java IO流
查看>>
javascript 学习笔记 【数组操作方法】
查看>>
C#中的类型比较
查看>>
《JAVA与模式》之抽象工厂模式
查看>>
android云同步
查看>>