JavaScript Array 对象
- Array
- 与其他编程语言中的数组一样,Array对象支持在单个变量名下存储多个元素,并具有执行常见数组操作的成员。描述在 JavaScript 中,数组不是基本类型,而是具有以下核心特征的Array对象:JavaScript 数组是可调整大小的,并且可以包含不同的数据类型。(当不需要这些特征时,可以使用类型化
- new Array()
- JavaScript的Array对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。创建数组var fruits =['Apple','Banana'];console.log(fruits.length);// 2通过索引访问数组元素var first = fruits[0];// Appl
- Array.isArray()
- Array.isArray()用于确定传递的值是否是一个Array。Array.isArray([1, 2, 3]);// trueArray.isArray({foo: 123});// falseArray.isArray("foobar");// falseArray.isArray(unde
- Array.of()
- Array.of()方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。Array.of()和Array构造函数之间的区别在于处理整数参数:Array.of(7)创建一个具有单个元素7的数组,而Array(7)创建一个长度为7的空数组(注意:这是指一个有7个空位(empty)的数组,
- Array.from()
- Array.from()方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。语法Array.from(arrayLike[, mapFn[, thisArg]])参数arrayLike想要转换成数组的伪数组对象或可迭代对象。mapFn可选如果指定了该参数,新数组中的每个元素会执行该回调函数
- get Array[@@species]
- Array[@@species]访问器属性返回Array的构造函数。语法Array[Symbol.species]返回值Array的构造函数。描述species访问器属性返回Array对象的默认构造函数。子类的构造函数可能会覆盖并改变构造函数的赋值。示例species属性返回默认构造函数,它用于Ar
- Array.prototype[@@unscopables]
- Symbol 属性@@unscopable包含了所有 ES2015(ES6)中新定义的、且并未被更早的 ECMAScript 标准收纳的属性名。这些属性被排除在由with语句绑定的环境中。语法arr[Symbol.unscopables]描述with绑定中未包含的数组默认属性有:copyWithin
- Array.prototype.length
- length是Array的实例属性。返回或设置一个数组中的元素个数。该值是一个无符号 32-bit 整数,并且总是大于数组最高项的下标。描述length属性的值是一个 0 到 232-1 的整数。var namelistA = new Array(4294967296);// 2的32次方= 429
- Array.prototype.keys()
- keys()方法返回一个包含数组中每个索引键的Array Iterator对象。语法arr.keys()返回值一个新的Array迭代器对象。示例索引迭代器会包含那些没有对应元素的索引var arr =["a",, "c"];var sparseKeys = Object.keys(arr);var
- Array.prototype.values()
- values()方法返回一个新的Array Iterator对象,该对象包含数组每个索引的值语法arr.values()返回值一个新的Array迭代对象。示例使用 for...of循环进行迭代let arr =['w','y','k','o','p'];let eArr = arr.values()
- Array.prototype[@@iterator]()
- @@iterator属性和Array.prototype.values()属性的初始值是同一个函数对象。语法arr[Symbol.iterator]()返回值数组的iterator 方法,默认情况下,与values()函数。示例使用for...of循环进行迭代var arr =['a','b','c
- Array.prototype.entries()
- entries()方法返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对。语法arr.entries()返回值一个新的Array迭代器对象。Array Iterator是对象,它的原型(__proto__:Array Iterator)上有一个next方法,可用用于遍历
- Array.prototype.map()
- map()方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。语法var new_array = arr.map(function callback(currentValue[, index[, array]]){// Return element for new_arr
- Array.prototype.forEach()
- forEach()方法对数组的每个元素执行一次提供的函数。语法arr.forEach(callback(currentValue[, index[, array]])[, thisArg]);参数callback为数组中每个元素执行的函数,该函数接收三个参数:currentValue数组中正在处理的
- Array.prototype.reduce()
- educe()方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。reducer函数接收4个参数:Accumulator(acc)(累计器)Current Value(cur)(当前值)Current Index(idx)(当前索引)Source Arr
- Array.prototype.reduceRight()
- reduceRight()方法接受一个函数作为累加器(accumulator)和数组的每个值(从右到左)将其减少为单个值。对于从左至右遍历的相似方法请参阅Array.prototype.reduce().语法arr.reduceRight(callback(accumulator, currentV
- Array.prototype.flat()
- flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。语法var newArray = arr.flat([depth])参数depth可选指定要提取嵌套数组的结构深度,默认值为 1。返回值一个包含将数组与子数组中所有元素的新数组。示例扁平化嵌
- Array.prototype.flatMap()
- flatMap()方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与 map 连着深度值为1的 flat 几乎相同,但flatMap通常在合并成一种方法的效率稍微高一些。语法var new_array = arr.flatMap(function callback(currentVa
- Array.prototype.some()
- some()方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。注意:如果用一个空数组进行测试,在任何情况下它返回的都是false。语法arr.some(callback(element[, index[, array]])[, thisArg])参数ca
- Array.prototype.every()
- every()方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。注意:若收到一个空数组,此方法在一切情况下都会返回true。语法arr.every(callback[, thisArg])参数callback用来测试每个元素的函数,它可以接收三个参数:element用于测
- Array.prototype.includes()
- includes()方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。语法arr.includes(valueToFind[, fromIndex])参数valueToFind需要查找的元素值。Note:使用includes()比较字符串和字符时是区分
- Array.prototype.at()
- at()方法接收一个整数值并返回该索引对应的元素,允许正数和负数。负整数从数组中的最后一个元素开始倒数。语法at(index)参数index要返回的数组元素的索引(位置)。当传递负数时,支持从数组末端开始的相对索引;也就是说,如果使用负数,返回的元素将从数组的末端开始倒数。返回值匹配给定索引的数组中
- Array.prototype.indexOf()
- indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。注意:对于String方法,请参阅String.prototype.indexOf()。语法arr.indexOf(searchElement[, fromIndex])参数searchElement要查找的
- Array.prototype.lastIndexOf()
- lastIndexOf()方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回-1。从数组的后面向前查找,从fromIndex处开始。语法arr.lastIndexOf(searchElement[, fromIndex])参数searchElem
- Array.prototype.find()
- find()方法返回数组中满足提供的测试函数的第一个元素的值。否则返回undefined。另请参见findIndex()方法,它返回数组中找到的元素的索引,而不是其值。如果你需要找到一个元素的位置或者一个元素是否存在于数组中,使用Array.prototype.includes()。语法arr.fi
- Array.prototype.findIndex()
- findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。另请参见find()方法,它返回数组中找到的元素的值,而不是其索引。语法arr.findIndex(callback[, thisArg])参数callback针对数组中的每个元素,都会执行该回调函数,执行时会自
- Array.prototype.findLast()
- findLast()方法返回数组中满足提供的测试函数条件的最后一个元素的值。如果没有找到对应元素,则返回undefined。语法//箭头函数findLast((element)=>{/*…*/})findLast((element, index)=>{/*…*/})findLast((e
- Array.prototype.findLastIndex()
- findLastIndex()方法返回数组中满足提供的测试函数条件的最后一个元素的索引。若没有找到对应元素,则返回-1。语法//箭头函数findLastIndex((element)=>{/*…*/})findLastIndex((element, index)=>{/*…*/})fin
- Array.prototype.push()
- push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。语法arr.push(element1,..., elementN)参数elementN被添加到数组末尾的元素。返回值当调用该方法时,新的length属性值将被返回。描述push方法将值追加到数组中。push方法具有通用性。该方
- Array.prototype.pop()
- pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。语法arr.pop()返回值从数组中删除的元素(当数组为空时返回undefined)。描述pop方法从一个数组中删除并返回最后一个元素。pop方法有意具有通用性。该方法和apply()一起使用时,可应用在类似数组的对象上
- Array.prototype.unshift()
- unshift()方法将一个或多个元素添加到数组的开头,并返回该数组的新长度(该方法修改原有数组)。语法arr.unshift(element1,..., elementN)参数列表elementN要添加到数组开头的元素或多个元素。返回值当一个对象调用该方法时,返回其length属性值。描述unsh
- Array.prototype.shift()
- shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。语法arr.shift()返回值 从数组中删除的元素; 如果数组为空则返回undefined 。 描述shift 方法移除索引为 0 的元素(即第一个元素),并返回被移除的元素,其他元素的索引值随之减 1。如果 un
- Array.prototype.fill()
- fill()方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。语法arr.fill(value[, start[, end]])参数value用来填充数组元素的值。start可选起始索引,默认值为0。end可选终止索引,默认值为this.length。返回值修改后的数组
- Array.prototype.join()
- join()方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。语法arr.join([separator])参数separator可选指定一个字符串来分隔数组的每个元素。如果需要,将分隔符转换为字符串。如果缺省该值,数
- Array.prototype.concat()
- concat()方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。语法var new_array = old_array.concat(value1[, value2[,...[, valueN]]])参数valueN可选将数组和/或值连接成新数组。如果省略了valueN参数参
- Array.prototype.copyWithin()
- copyWithin()方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。语法arr.copyWithin(target[, start[, end]])参数target0 为基底的索引,复制序列到该位置。如果是负数,target将从末尾开始计算。如果target大于等
- Array.prototype.slice()
- slice()方法返回一个新的数组对象,这一对象是一个由begin和end决定的原数组的浅拷贝(包括begin,不包括end)。原始数组不会被改变。语法arr.slice([begin[, end]])参数begin可选提取起始处的索引(从0开始),从该索引开始提取原数组元素。如果该参数为负数,则表
- Array.prototype.splice()
- splice()方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。语法array.splice(start[, deleteCount[, item1[, item2[,...]]]])参数start指定修改的开始位置(从0计数)。如果超出了
- Array.prototype.filter()
- filter()方法创建一个新数组,其包含通过所提供函数实现的测试的所有元素。语法var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])参数callback用来测试数组的每个元素的函数。返回true表示该元素
- Array.prototype.sort()
- sort()方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的由于它取决于具体实现,因此无法保证排序的时间和空间复杂性。语法arr.sort([compareFunction])参数compareFunction可选用
- Array.prototype.reverse()
- reverse()方法将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。语法 arr.reverse()返回值颠倒后的数组。描述reverse方法颠倒数组中元素的位置,改变了数组,并返回该数组的引用。reverse方法是特意类化的
- Array.prototype.toString()
- toString()返回一个字符串,表示指定的数组及其元素。语法arr.toString()返回值一个表示指定的数组及其元素的字符串。描述Object的toString方法。对于数组对象,toString方法连接数组并返回一个字符串,其中包含用逗号分隔的每个数组元素。当一个数组被作为文本值或者进行字
- Array.prototype.toLocaleString()
- toLocaleString()返回一个字符串表示数组中的元素。数组中的元素将使用各自的toLocaleString方法转成字符串,这些字符串将使用一个特定语言环境的字符串(例如一个逗号",")隔开。语法arr.toLocaleString([locales[,options]]);参数locale