Array对象
属性 | 描述 | 返回值 |
---|---|---|
constructor | 返回创建数组对象的原型函数。 | [Function: Array] |
length | 设置或返回数组元素的个数。 | |
prototype | 允许你向数组对象添加属性或方法。 | undefined |
方法 | 描述 | 是否有详解 |
---|---|---|
concat() | 看详解 | 1 |
copyWithin() | 看详解 | 1 |
entries() | 返回数组的可迭代对象。 | |
every() | 检测数值元素的每个元素是否都符合条件。 | 1 |
fill() | 使用一个固定值来填充数组。 | 1 |
filter() | 检测数值元素,并返回符合条件所有元素的数组。 | 1 |
find() | 返回符合传入测试(函数)条件的数组元素。 | |
findIndex() | 返回符合传入测试(函数)条件的数组元素索引。 | |
forEach() | 数组每个元素都执行一次回调函数。 | |
from() | 通过给定的对象中创建一个数组。 | 1 |
includes() | 判断一个数组是否包含一个指定的值。 | 1 |
indexOf() | 搜索数组中的元素,并返回它所在的位置。 | 1 |
isArray() | 判断对象是否为数组。 | |
join() | 把数组的所有元素放入一个字符串。 | 1 |
keys() | 返回数组的可迭代对象,包含原始数组的键(key)。 | |
lastIndexOf() | 搜索数组中的元素,并返回它最后出现的位置。 | |
map() | 通过指定函数处理数组的每个元素,并返回处理后的数组。 | 1 |
pop() | 删除数组的最后一个元素并返回删除的元素。 | |
push() | 向数组的末尾添加一个或更多元素,并返回新的长度。 | |
reduce() | 将数组元素计算为一个值(从左到右)。 | 1 |
reduceRight() | 将数组元素计算为一个值(从右到左)。 | |
reverse() | 反转数组的元素顺序。 | |
shift() | 删除并返回数组的第一个元素。 | |
slice() | 选取数组的一部分,并返回一个新数组。 | 1 |
some() | 检测数组元素中是否有元素符合指定条件。 | 1 |
sort() | 对数组的元素进行排序。 | |
splice() | 从数组中添加或删除元素。 | 1 |
toString() | 把数组转换为字符串,并返回结果。 | |
unshift() | 向数组的开头添加一个或更多元素,并返回新的长度。 | |
valueOf() | 返回数组对象的原始值。 |
array1.concat(array2,array3,…,arrayX)
》知识点
concat() 方法用于连接两个或多个数组。
且方法不会改变现有的数组,返回值是连接好的新数组,可以用变量接收。
var hege = ["Cecilie", "Lone"]; var stale = ["Emil", "Tobias", "Linus"]; var kai = ["Robin"]; var children = hege.concat(stale,kai); // Cecilie,Lone,Emil,Tobias,Linus,Robin
array.copyWithin(target, start, end)
》注意
IE 11 及更早版本不支持 copyWithin() 方法
参数 描述 target 必需。要接受复制覆盖的位置的开始。 start 可选。元素复制的起始位置。 end 可选。停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数。 var fruits = ["Banana", "Orange", "Apple", "Mango", "Kiwi", "Papaya"]; fruits.copyWithin(2, 0, 2); // 解读 // Orange后的位置 将要 被复制数据 覆盖 // 复制数据 从下标0 开始 到下标 2 结束,2是个闭区间不能被取到 // 所以复制数据 为 "Banana", "Orange" // 运行结果为 // Banana,Orange,Banana,Orange,Kiwi,Papaya
array.every(函数x)
》知识点
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数x return 判断条件)。
every() 方法使用指定函数检测数组中的所有元素:
- 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
- 如果所有元素都满足条件,则返回 true。
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。
注意: 这只是常用方式,其实还有其他参数
// 举例 var ages = [32, 33, 16, 40, 5555]; function thisValue(age) { return age < 100 } function checkAdult(age) { return age >= 8; } function myFunction() { // 要同时满足checkAdult, thisValue两个函数 console.log(ages.every((checkAdult, thisValue))) // false } myFunction()
和array.some(fn)相反,这个是只要一个元素满足就返回true了
array.fill(value, start, end)
》知识点
fill() 方法用于将一个固定值替换数组的元素。
参数 描述 value 必需。填充的值。 start 可选。开始填充位置。 end 可选。停止填充位置 (默认为 array.length) var fruits = ["Banana", "Orange", "Apple", "Mango"]; function myFunction() { console.log(fruits.fill("Runoob", 2, 4)); // 2是指 "Orange" 之后 // 4是指 3下标结束 4是闭区间 取不到 // "Apple", "Mango" 变成 'Runoob', 'Runoob' // 结果 [ 'Banana', 'Orange', 'Runoob', 'Runoob' ] } myFunction()
array.filter(函数名)
》知识点
filter() 方法创建一个新的数组,新数组中的元素是符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
注意: 这只是常用方式,其实还有其他参数
var ages = [32, 33, 12, 40]; function checkAdult(age) { return age >= 18; } function myFunction() { console.log(ages.filter(checkAdult));; } myFunction() // [ 32, 33, 40 ]
Array.from(object, mapFunction, thisValue)
知识点
from() 方法将 字符串 切割成 char 数组返回
如果对象是数组返回 true,否则返回 false。
参数 描述 object 必需,要转换为数组的对象。 mapFunction 可选,数组中每个元素要调用的函数。!!!!这个可能用得上 thisValue 可选,映射函数(mapFunction)中的 this 对象。 // 切割 var myArr = Array.from("abc"); console.log(myArr); // [ 'a', 'b', 'c' ] // ES5 function name(params) { return params = params + "aaa" } var myArr = Array.from("abc",name); console.log(myArr); // [ 'aaaa', 'baaa', 'caaa' ] //ES6 var myArr = Array.from("abc", (params) => params = params + "aaa"); console.log(myArr); // [ 'aaaa', 'baaa', 'caaa' ]
arr.includes(searchElement, fromIndex)
》知识点
includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
参数 描述 searchElement 必须。需要查找的元素值。 fromIndex 可选。从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。 let site = ['runoob', 'google', 'taobao']; site.includes('runoob'); // true site.includes('baidu'); // false
array.indexOf(item,start)
》知识点
indexOf() 方法可返回数组中指定的元素第一次出现的位置。
如果在数组中没找到指定元素则返回 -1。
参数 描述 item 必须。查找的元素。 start 可选的整数参数。规定在数组中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。 var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.indexOf("Apple"); // 2
有个array.lastIndexOf(item,start) 是返回最后一次出现
array.join(separator)
》介绍
join() 方法用于把数组中的所有元素转换一个字符串。
元素是通过指定的分隔符进行分隔的。
参数 描述 separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。 var fruits = ["Banana", "Orange", "Apple", "Mango"]; var energy = fruits.join("111"); console.log(energy); // Banana111Orange111Apple111Mango var energy = fruits.join(); console.log(energy); // Banana,Orange,Apple,Mango
array.map(function(currentValue,index,arr), thisValue)
》知识点
简而言之就是对数组中的每个元素,依次进行操作
注意: map() 不会对空数组进行操作。
注意: map() 不会改变原始数组。
参数 描述 function(currentValue, index,arr) 必须。函数,数组中的每个元素都会执行这个函数 函数参数: 参数描述currentValue必须。当前元素的值index可选。当前元素的索引值arr可选。当前元素属于的数组对象 thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。 如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。 返回值为处理后的数据,新数组
array.slice(start, end)
》知识点
从start开始裁切到end结束,返回值为存放裁切结果的新数组, 不会改变原有的数组
参数 描述 start 可选。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。 end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。 var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(1,3); // [ 'Orange', 'Lemon' ]
array.splice(index,howmany,item1,…,itemX)
》知识点
会对原数组进行操作
参数 描述 index 必需。添加和删除元素的起始位置。 该参数是开始插入和(或)删除的数组元素的下标,必须是数字。 若index超出了数组的现有长度,默认在数组最后面的位置操作 howmany 可选,但最好填了。从index开始删除,一共删除 howmany 个,不需要删除就填入 0 item1, …, itemX 可选。要添加到数组的新元素 // 删除和插入同时操作 var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(3, 1, "Lemon"); console.log(fruits); // [ 'Banana', 'Orange', 'Apple', 'Lemon' ] // 仅仅插入 var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(3, 0, "Lemon"); console.log(fruits); // [ 'Banana', 'Orange', 'Apple', 'Lemon', 'Mango' ] // 仅仅删除 var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(3, 1); console.log(fruits); // [ 'Banana', 'Orange', 'Apple' ]