javascript数组常用API

Array

语法

[element0, element1, ..., elementN ]

new Array ( element0 , element1 [ , ... [ , elementN ] ] )

new Array ( arrayLength )

属性

  • Array.length     Array构造函数的length属性,其值为1(注意该属性为静态属性,不是数组实例的length属性)
  • Array.prototype  数组的原型对象,可以为所有数组对象添加属性

方法

  • Array.isArray()  判断某个变量是否为一个数组对象
  • Array.from()     从类数组对象或者可迭代对象中创建一个新的数组实例
  • Array.of()       根据一组参数来创建新的数组实例,支持任意的参数数量和类型

 

数组实例

属性

  • Array.prototype.constructor   

所有的数组实例都继承了这个属性,它的值就是Array,表明了所有的数组都是由Array构造出来的

  • Array.prototype.length        

因为 Array.prototype 也是个数组,所以它也有 length 属性,这个值为 0,因为它是个空数组

方法 

  • Array.prototype.push(value,...)   添加元素到数组的末尾,并返回添加新元素后的数组长度
  • Array.prototype.pop()             删除数组末尾的元素,并返回该元素
  • Array.prototype.unshift(value)    添加元素到数组的头部,并返回添加新元素后的数组长度
  • Array.prototype.shift()           删除数组最前面(头部)的元素,并返回该元素(shift:改变、去掉、转移)
  • Array.prototype.slice(start_index,upto_index) 

抽取原数组的一部分,返回一个新数组,原数组不变。 (slice:切片、切下)

第一个参数为其实位置(从0开始),第二个参数为终止为止(但该位置的元素本身不包含在内)。若省略第二个参数,则一直返回到原数组的最后一个元素。负数表示倒数第几个元素

  • Array.prototype.splice(index,remove_count, addElement1,addElement2,...)    

在任意的位置给数组删除或添加任意个元素,返回值是被删除的元素。(splice:胶接、粘接、剪接)

第一个参数是删除的起始位置,第二个参数是被删除元素的个数,若后面还有更多的参数,它们是要在被删除的位置添加的新数组元素

  • Array.prototype.indexOf(item,index

返回数组中第一个与指定值相等的元素的索引,如果找不到则返回 -1。第二个参数表示搜索的开始位置

  • Array.prototype.lastIndexOf()     

返回数组中最后一个(从右边数第一个)与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1

  • Array.prototype.includes()        

判断当前数组是否包含某指定的值,如果是返回true,否则返回false

  • Array.prototype.concat(value,...) 

合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组(浅拷贝)

  • Array.prototype.join(separator  

返回以参数作为分隔符,将所有数组元素组成的一个字符串;若不提供参数,则默认用逗号分隔

  • Array.prototype.sort([compareFunction])

对数组成员进行排序,默认无参是按照字典顺序(Unicode)排序。排序后,原数组将被改变。

若传入一个函数作为参数,表示按照自定义方法进行排序。该函数本身接受两个参数,表示进行比较的两个元素。如果返回值大于0,表示第一个元素排在第二个元素后面;其他情况下,都是第一个元素排在第二个元素前面。

  • Array.prototype.reverse()         

颠倒数组中元素的排列顺序,即原先的第一个变为最后一个,原先的最后一个变为第一个 

  • Array.prototype.toLocaleString()
返回一个由所有数组元素组合而成的本地化后的字符串。遮蔽了原型链上的 Object.prototype.toLocaleString() 方法
  • Array.prototype.toString()
返回一个由所有数组元素组合而成的字符串。遮蔽了原型链上的Object.prototype.toString()方法
迭代方法:
  • Array.prototype.forEach(function(item, index, array){...})  

遍历数组的所有成员。参数是一个函数,它接受三个参数(当前位置的值、当前位置的编号和整个数组) 

  • Array.prototype.map(function(item, index, array){...})

默认(无参)对数组的所有成员依次调用一个函数,根据函数结果返回一个新数组

map方法接受一个函数作为参数。该函数有三个参数,分别是当前成员、当前位置和数组本身

  • Array.prototype.every()    

如果数组中的每个元素都满足测试函数,则返回 true,否则返回 false

  • Array.prototype.some()     

如果数组中至少有一个元素满足测试函数,则返回 true,否则返回 false

  • Array.prototype.filter()

将所有在过滤函数中返回 true 的数组元素放进一个新数组中并返回 

  • Array.prototype.reduce()

从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值

  • Array.prototype.reduceRight()

从右到左为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值

  • Array.prototype.find()

找到第一个满足测试函数的元素并返回那个元素的值,如果找不到,则返回 undefined

  • Array.prototype.findIndex()

找到第一个满足测试函数的元素并返回那个元素的索引,如果找不到,则返回 -1

  • Array.prototype.keys()

返回一个数组迭代器对象,该迭代器会包含所有数组元素的 

  • Array.prototype.values()

返回一个数组迭代器对象,该迭代器会包含所有数组元素的

  • Array.prototype.entries()

返回一个数组迭代器对象,该迭代器会包含所有数组元素的键值对

 
Array.prototype[@@iterator]()
get Array[@@species]

例子:

1.slice()    可以把slice当作创建当前数组的子数组。slice返回一个新的数组

它的参数代表数组的位置,当只有一个参数时返回从该位置到数组末尾的子数组,当有两个参数时返回起始位置到结束位置-1的子数组

var arr=["red","green","blue","yellow"];
var arr1=arr.slice(1);
var arr2=arr.slice(1,3);
console.log(arr1);//["green","blue","yellow"]
console.log(arr2);//["green","blue"]

2.splice()    splice既可以实现删除,也可以实现插入,还可以实现替换。splice在原数组上进行修改,并返回删除的项

它接受三个参数:要删除的第一项的位置,要删除的项数,要替换的新数据。如果指定前两个参数就可以实现删除,如果指定三个参数并且第二个参数为0,就是实现了插入,如果指定了三个参数就实现了替换。。

var arr=["red","green","blue","yellow"];
arr.splice(0,2);//删除数组中的前两项
console.log(arr);//["blue","yellow"]
arr.splice(0,0,"red","green");//插入
console.log(arr);//["red","green","blue","yellow"]
arr.splice(0,1,"black");//替换掉第一个元素
console.log(arr);//["black","green","blue","yellow"]



摘自:https://microzz.com/2017/04/20/jsobject/

         https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

         https://www.jianshu.com/p/962ffdae7bd8

原文地址:https://www.cnblogs.com/dxchen/p/9296300.html