数组所有原型,数组方法
constructor() copyWithin() entries()
indexOf() join() lastIndexOf()
reduce() reduceRight() reverse()
splice() toLocaleString() unshift()
Array.prototype.push
push 用于向数组的末尾添加一个或多个元素,并返回新的长度;改变原数组的长度,将新的值添加在数组的尾部
var arr=["red","black","Momen"]; arr.push('hi') // 4 console.log(arr) // ["red","black","Momen","hi"]
Array.prototype.pop
删除一个数组中的最后的一个元素,并且返回这个元素
var arr=["red","black","Momen"]; arr.pop() // "Momen"
Array.prototype.concat
concat()方法用于合并两个或多个数组。
此方法不改变原数组,而是返回一个新数组。
var arr=["red","black","Momen"]; var arr2=["hi"] arr.concat(arr2) // ["red","black","Momen","hi"]
Array.prototype.constructor
constructor 属性返回对象的构造函数
例:
JavaScript 数组 constructor 属性返回 function Array() { [native code] }
JavaScript 数字 constructor 属性返回 function Number() { [native code] }
JavaScript 字符串 constructor 属性返回 function String() { [native code] }
Array.prototype.copyWithin
copyWithin() 方法用于从数组的指定位置拷贝元素到数组的另一个指定位置中。
array.copyWithin(target, start, end)
target | 必需。复制到指定目标索引位置 |
start | 可选。元素复制的起始位置 |
end | 可选。停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数 |
Array.prototype.entries(),keys()和values()
三个都是es6新增的方法
用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历
唯一的区别是:keys()是对键名的遍历
values()是对键值的遍历
entries()是对键值对的遍历
var arr=["red","black","Momen"]; for(let item of arr.keys()){ console.log('keys():',item) } for(let item of arr.values()){ console.log('values():',item) } for(let item of arr.entries()){ console.log('entries():',item) }
结果:
Array.prototype.every
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
- 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
- 如果所有元素都满足条件,则返回 true。
Array.prototype.fill
fill() 方法用于将一个固定值替换数组的元素。
Array.prototype.map(),filter(),some(),every(),forEach()
map():返回一个新的Array,每个元素为调用func的结果
filter():返回一个符合func条件的元素数组
some():返回一个boolean,判断是否有元素是否符合func条件
every():返回一个boolean,判断每个元素是否符合func条件
forEach():没有返回值,只是针对每个元素调用func
Array.prototype.find(),findIndex()
find()函数用来查找目标元素,找到就返回该元素,找不到返回undefined。
findIndex()函数也是查找目标元素,找到就返回元素的位置,找不到就返回-1
[1, 2, 3, 4].find((value, index, arr) => {})
查找函数有三个参数。
value:每一次迭代查找的数组元素。
index:每一次迭代查找的数组元素索引。
arr:被查找的数组。
Array.prototype.includes
includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, NaN].includes(NaN); // true
Array.prototype.indexOf
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
[1,2,3,4].indexOf(3) // 2
Array.prototype.join
join() 方法用于把数组中的所有元素连接成一个字符串。
元素是通过指定的分隔符进行分隔的
[1,2,3].join('@') // 1@2@3
Array.prototype.lastIndexOf
在整个一维 Array 中搜索指定的对象,并返回最后一个匹配项的索引。
[2,2,1,1,4,5,3,1,2].lastIndexOf(1) // 7
Array.prototype.reduce(),reduceRight()
reduce()
方法接收一个函数 callback
作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值
array.reduce(callback[, initialValue])
function callback(accumulator, currentValue, currentIndex, array){}
accumulator
: 上一次调用回调返回的值,或者是提供的初始值(initialValue)currentValue
: 数组中当前被处理的数组项currentIndex
: 当前数组项在数组中的索引值array
: 调用reduce()
方法的数组
而initialValue
作为第一次调用callback
函数的第一个参数
var arr = [0,1,2,3,4]; arr.reduce(function (accumulator, currentValue, currentIndex, array) { return accumulator+ currentValue; }); // 10
reduceRight()
方法的功能和 reduce()
功能是一样的,不同的是 reduceRight()
从数组的末尾向前将数组中的数组项做累加
Array.prototype.reverse
reverse() 方法用于颠倒数组中元素的顺序
该方法会改变原来的数组,而不会创建新的数组
Array.prototype.shift
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。
Array.prototype.slice
slice() 方法可从已有的数组中返回选定的元素,不改变原数组。
arrayObject.slice(start,end)
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
Array.prototype.sort
sort()
方法对数组的元素做原地的排序,并返回这个数组。 sort 排序可能是不稳定的。默认按照字符串的Unicode码位点(code point)排序
Array.prototype.splice
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
该方法会改变原始数组
arrayObject.splice(index,howmany,item1,.....,itemX)
index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX:可选。向数组添加的新项目。
splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
Array.prototype.toLocaleString
把数组转换为本地字符串。
首先调用每个数组元素的 toLocaleString() 方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个字符串
["red","black","green"].toLocaleString() // red,black,green
Array.prototype.toString
可把数组转换为字符串,并返回结果(不会改变原数组)
Array.prototype.unshift
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
注意: 该方法将改变数组的数目。
提示: 将新项添加到数组末尾,可以使用 push() 方法。