数组所有原型,数组方法

Posted momen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组所有原型,数组方法相关的知识,希望对你有一定的参考价值。

  Array.prototype.push  

push 用于向数组的末尾添加一个或多个元素,并返回新的长度;改变原数组的长度,将新的值添加在数组的尾部

  Array.prototype.pop  

删除一个数组中的最后的一个元素,并且返回这个元素

  Array.prototype.concat  

concat()方法用于合并两个或多个数组。

此方法不改变原数组,而是返回一个新数组。

  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.prototype.entries(),keys()和values()  

三个都是es6新增的方法

用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历

唯一的区别是:keys()是对键名的遍历

         values()是对键值的遍历

         entries()是对键值对的遍历

  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(‘@‘)  // [email protected]@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() 方法。

 

 

 

 

 

 

 

 

 



以上是关于数组所有原型,数组方法的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段10—— 数组的响应式方法

为什么我不能在此片段中生成唯一对象数组?

JavaScript利用数组原型,添加方法实现遍历多维数组每一个元素

数组Array.prototype原型方法学习-30分钟学完数组全部操作

几个关于js数组方法reduce的经典片段

JavaScript数组方法详解