Array(数组)是JavaScript中最为常用的类型了。ECMAScript中的数组都是数据的有序列表。数组中可以保存任何类型的数据。数组的大小是可以动态调整的,既可以随着数据的添加自动增长以容纳新增数据。

ECMAScript为数组提供了几种操作和处理数组的方法,以下为自己整理的数组的操作方法。

1.push():往数组的末尾添加元素,并返回修改后的数组长度。(可以接受任何的参数)

var arr = [1,2,3]
var arrpush = arr.push(4,5)
console.log(arrpush) //
console.log(arr) //[1,2,3,4,5]

push()方法所接受的参数可以是任意类型,可以是数组也可以对象等。

var arr = [1,2,3,4,5]
var arr1 = [4,5]
console.log(arr.push(arr1)) //
console.log(arr) //[1, 2, 3, 4, 5, Array(2)]
// push的参数为数组时需要展开作为参数的数组
console.log(arr.push(...arr1)) //
console.log(arr) //[1, 2, 3, 4, 5, Array(2), 4, 5]

以上有两次使用了push()方法,如果push()方法接受的参数是个Array类型,那么原来操作的最后一项就是一个数组,如上图所示,如果想将一个数组的每个元素添加到所操作的数组当中,那么需要展开要被添加的数组,

2.pop:移除数组末尾的项,并返回所移除的项。

var arr = [1,2,3,4,5]
console.log(arr.pop()) //
console.log(arr) //[1,2,3,4]

图中可以看出,pop()方法会返回操作原来的数组后返回所移除的内容,pop()方法不接受任何的参数。

3.shift():移除数组前端的第一项并返回该项,同时数组的长度-1,并且不会接受任何参数。

var arr = [1,2,3,4]
console.log(arr.shift()) //
console.log(arr) //[2,3,4]

4.unshift():在数组的前端添加任何的项并返回数组的长度。接受的参数是给所操作的数组需要添加的内容,可接受任何类型的参数。

var arr = [1,2,3,4]
console.log(arr.unshift(0,1)) //
console.log(arr) //[0,1,1,2,3,4]

5.Reverse():会反转数组原来的顺序。

var arr =[1,2,3,4,5]
console.log(arr.reverse()) //[5,4,3,2,1]

6.sort():在默认情况下sort方法按升序排列数组,即最小一项在最前面,最大的排在最后面。

var arr =[5,4,3,2,1]
console.log(arr.sort()) //[1,2,3,4,5] //sort方法是在进行字符串的比较
var arr =[1,2,11,33,55,66,8,9]
console.log(arr.sort()) //[1,11,2,33,55,66,8,9]

因为sort方法是比较字符串,所以它可以接受一个比较函数作为参数,以便指定哪个位置位于哪个位置前面。
比较函数接受两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等则返回0,如果第一个参数应该位于第二个之后则返回一个整数。

按照规则可以写出以下的比较函数:

function compare (value1,value2){
if((value1<value2){
return -1
}else if((value1>value2){
return 1
}else {
return 0
}
}
// sort()方法可以接受以上的比较函数为参数
var arr = [1,55,15,16,44,9,66,8]
console.log(arr.sort()) //[1,15,16,44,55,66,8,9]
console.log(arr.sort(compare)) //[1,8,9,15,16,44,55,66]

从大的值排序到小的值可以写为:

function compare (value1,value2){
if((value1<value2){
return 1
}else if((value1>value2){
return -1
}else {
return 0
}
}
 var arr = [1,55,15,16,44,9,66,8]
console.log(arr.sort(compare)) //[66,55,44,16,15,9,8,1]

或者可以利用简单的方法写出:

//升序排序
function compare (value1,value2) {
value1- value2
}
//降序排序
function compare (value1,value2) {
value2- value1
}

7.contact():该方法可以基于当前数组中的所有选项创建一个新数组。(可以说是连接两个数组)。

var arr = [1,2,3]
var arr1 = [4,5,6]
console.log(arr.contact(arr1)) //[1,2,3,4,5,6]
console.log(arr1.contact(arr)) //[4,5,6,1,2,3]

8.slice():它能够基于当前数组中的一个或者多个项创建一个新的数组。

Slice()方法可以接受一个或者两个个参数,即返回项的起始位置和结束位置,在只有一个参数的情况下,slice方法返回从该参数指定的位置到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项—但不包括结束位置的项。Slice方法不会影响原始数组。

var arr = [1,8,9,15,16,44,55,66]
console.log(arr.slice(5)) //[44,55,66]
console.log(arr.slice(5,7)) //[44,55]

9.splice:该方法算是最强大的数组方法了。它有很多种用法,主要用法是向数组中部插入项,但是使用这种方法的方式则有一下3种。

(1)删除: 可以删除任意数量的项,只需要指定两个参数:要删除的第一项的位置和要删除的项数。如splice(0,2)会删除所操作的数组的前两项。并返回所删除的内容。

var arr = [1,2,3,4,5,6]
console.log(arr.splice(0,2)) //[1,2]
console.log(arr) //[3,4,5,6]

(2) 插入:可以向指定位置插入任意数量的项,只需要提供3个参数:起始位置,0(要删除的项数)和要插入的项。

例如:splice(2,0,“nihao”“hello”)会从数组位置2开始插入后面的两个参数。

var arr = [1,2,3,4,5,6]
console.log(arr.splice(0,0,"hello","array") //[]
console.log(arr) // ["hello", 1, 2, 3, 4, 5]

(3)替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项。

只需指定三个参数:起始位置,要删除的项数和要插入任意数量的项例如splice(2,1,“green”“red”)会删除当前数组位置2的项,然后再从位置2开始插入字符串“red”“green”。即先删除后插入。

var arr = [1,2,3,4,5]
console.log(arr.splice(2,1,"hello","arr")) //
console.log(arr) //[1, 2, "hello", "arr", 4, 5]

10. indexOf():该方法从数组的开头开始向后找,lastIndexOf()该方法则从数组的末尾开始向前找。

这两个方法都要返回要查找的项在数组中的位置,或者在没找到的情况下返回-1,该方法在操作时,会使用全等操作符;也就是说,要求查找的项必须严格相等。

var arr = [1,2,3,4,5,6,7,8]
console.log(arr.indexOf(5)) //
console.log(arr.lastIndexOf(5)) //
console.log(arr.indexOf(11)) //-1

11. every() :对数组中的每一项运行给定函数,如果该函数对每一项都返回 true ,则返回 true。

var arr =[1,2,3,9,15,16,44,55,66]
var numbers = arr.every(function(item,index,array){return item>2})
console.log(numbers ) //false var nums = arr.every(function(item,index,array){return item>0})
console.log(num) //true

12.filter() :对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。

var arr = [1,2,3,9,15,16,44,55,66]

function filterfunction(item,index,array){
return
item>2
} var number = arr.filter(filterfunction) console.log(number) //[3, 9, 15, 16, 44, 55, 66]

13.forEach() :对数组中的每一项运行给定函数。这个方法没有返回值。本质是于for循环一样的

14.map() :对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

var arr = [1,2,3,4,5,6]

function multiplication (item,index,array) {
return item*2
} var numbers =arr.map(multiplication ) console.log(numbers ) //[2,4,6,8,10,12]

JavaScript中数组的操作方法总汇的更多相关文章

  1. JavaScript中数组操作常用方法

    JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2 ...

  2. javascript中数组Array的方法

    一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ...

  3. Javascript中数组

    Javascript中数组 1.什么是数组 所谓的数组就是一组数据的集合,在内存中表现为一段连续的内存地址(保存在堆内存) 2.创建数组的含义 创建数组的目的:就是为了保存更多的数据 3.数组的定义 ...

  4. javascript中数组常用方法总结

    原文:javascript中数组常用方法总结 在javascript的基础编程中,数组是我们最常遇到的,那么数组的一些常用方法也是我们必须要掌握的,下面我们总结一下数组中常用的方法. toString ...

  5. JavaScript中数组Array方法详解

    ECMAScript 3在Array.prototype中定义了一些很有用的操作数组的函数,这意味着这些函数作为任何数组的方法都是可用的. 1.Array.join()方法 Array.join()方 ...

  6. javascript中数组的常用算法深入分析

    Array数组是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.本文将给大家详细介绍了javascri ...

  7. javascript中数组化的一般见解

    javascript中数组化的一般见解,数组化浏览器中存在许多类数组对象,往往对类数组操作比较麻烦,没有数组那些非常方便的方法,在这种情况下,就有了数组化方法. 数组化的一般方法 1.第一种也是我们最 ...

  8. 总结Javascript中数组各种去重的方法

    相信大家都知道网上关于Javascript中数组去重的方法很多,这篇文章给大家总结Javascript中数组各种去重的方法,相信本文对大家学习和使用Javascript具有一定的参考借鉴价值,有需要的 ...

  9. JavaScript中数组常用方法的总结

    JavaScript中数组Array常用的方法总结 标签(空格分隔): JavaScript ECMAScript数组给我们提供了许多常用的方法,便于我们对数组进行操作,下面,就来总结一下这些方法. ...

随机推荐

  1. 阶段1 语言基础+高级_1-3-Java语言高级_03-常用API第二部分_第5节 StringBuilder类_1_StringBuilder的原理

    字符串不可变.字符串的缓冲区是可以变的 字符串Sting的底层,被final修饰的不可变的数组 a+b+c最终会产生5个字符串

  2. python实现excel转换成pdf

    1.安装 需要安装pywin32包,以实现对Office文件的操作,可以批量转换为pdf文件.支持 doc, docx, ppt, pptx, xls, xlsx 等格式. pip install p ...

  3. golang md5 结果类型

    golang  md5 结果类型 package main import ( "crypto/md5" "encoding/hex" "fmt&quo ...

  4. C#线程中安全访问控件(重用委托,避免繁复的delegate,Invoke)总结

    1.第一种,不安全,当线程过多后,timer控件和线程中同时访问窗体控件时,有时会出现界面重绘出错. public frmMain() { InitializeComponent(); System. ...

  5. 【ABAP系列】SAP 读取生产订单 记入文档的货物移动明细

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 读取生产订单 记入文档的 ...

  6. 为什么说 Babel 将推动 JavaScript 的发展【转】

    Babel是一个转换编译器,它能将 ES6 转换成可以在浏览器中运行的代码.Babel 由来自澳大利亚的开发者Sebastian McKenzie创建.他的目标是使 Babel 可以处理 ES6 的所 ...

  7. gitlab上传代码及报错总结

    将目录变成git可管理的仓库 git init 将文件添加到暂存区中 git add README.md 将文件提交到仓库 git commit -m "fisrt commit" ...

  8. SQL server 2008r2 file is corrupt

    下载的SQLManagement studio有问题,重新下载一遍后再安装就好了.安装顺序没问题. 在卸载SQL Server开始——运行:输入regedit 进入注册表编辑器,进入之后执行下列操作: ...

  9. HDU 1174 题解(计算几何)

    题面: 爆头 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  10. Appium+Python之元素定位和操作

    一.常用识别元素的工具 uiautomatorviewer:Android SDK自带的一个工具,在tools目录下     二.元素定位   1.格式:find_element_by_定位方式(va ...