JavaScript内置方法-Array对象

10 篇文章 0 订阅
7 篇文章 0 订阅

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' ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值