数组的方法

数组的方法

数组

什么是数组?

数组就是一组有序数据的集合

数组的定义方法:

语法:

第一种方法:
var Cars=new Array();
Cars[0]="Saab";      
Cars[1]="Volvo";
Cars[2]="BMW";

第二种方法:
var Cars=new Array("Saab","Volco","BMW");

第三种方法:
var car=["Saab","Volvo","BMW"];

数组的方法

1、concat()方法

用于连接两个或者多个数组,不会改变原有的数组,仅仅返回被连接的数组

语法:

数组1.concat(数组2,数组3,...,数组n)

返回值:

返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的

理解:

就是合并concat方法连接的所有数组,并且依次排序

2、reverse()方法

用于颠倒数组种的元素

语法:

array.reverse()

理解:

对数组种的元素的顺序倒叙排序输出一个新的数组

3、push()方法

向数组的末尾添加一个或更多元素,并返回新的长度

语法:

array.push(添加的元素1, 添加的元素2, ..., 添加的元素n)

理解:

在原数组的末尾添加新的元素,此方法改变数组的长度如果需要添加在前面需要unshift()方法

4、pop()方法

移除最后一个数组元素

语法:

array.pop();

返回值:

返回删除的元素

理解:

删除数组里面最后的元素,并且会返回被删除的元素

5、join()方法

把数组的所有元素放入一个字符串里

语法:

array.join(分隔符号)

分隔符号可选,默认逗号

6、indexOf()方法

​ 搜索数组中的元素,并返回它所在的位置

语法:

array.indexOf(item,start)

返回数组中某个指定的元素位置从,头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。如果在数组中没找到指定元素则返回 -1。

start参数:

规定在数组中开始检索的位置

理解:

查找某个元素在数组种的位置,可以自定义开始检索的开始位置

7、includes()方法

判断一个数组是否包含一个指定的值

语法:

arr.includes(searchElement)
arr.includes(searchElement, fromIndex)

参数:

fromIndex:指的是从该索引处开始查找 需要查找的值

理解:

用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。

注意:

如果fromIndex大于数组的长度则返回 false 。该数组不会被搜索。

如果 fromIndex 为负值,计算出的索引将作为开始搜索searchElement的位置。如果计算出的索引小于 0,则整个数组都会被搜索。

8、flat()方法

方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回

语法:

var newArray = arr.flat([depth])

depth 可选
指定要提取嵌套数组的结构深度,默认值为 1。

取值为 Infinity,可展开任意深度的嵌套数组

返回值
一个包含将数组与子数组中所有元素的新数组。

理解:

推平指定维数的数组,返回一个新的数组

9、findIndex()方法

返回符合传入测试(函数)条件的数组元素索引。、

语法:

array.findIndex(function(currentValue, index, arr), thisValue)

实例:
  const array1 = [5, 12, 8, 130, 44];
  const isLargeNumber = (element) => element > 13;
  console.log(array1.findIndex(isLargeNumber));
//返回3

参数:

currentValue 必需。当前元素
index 可选。当前元素的索引
arr 可选。当前元素所属的数组对

thisValue:可选。 传递给函数的值一般用 “this” 值。
如果这个参数为空, “undefined” 会传递给 “this” 值

返回值:

返回符合测试条件的第一个数组元素索引,如果没有符合条件的则返回 -1。

注意:

findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。

findIndex() 方法为数组中的每个元素都调用一次函数执行:

  • 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
  • 如果没有符合条件的元素返回 -1

理解:

通过函数返回一个查找元素的索引

10、find()方法

返回符合传入测试(函数)条件的数组元素

语法:

array.find(function(currentValue, index, arr),thisValue)

参数:

currentValue 必需。当前元素
index 可选。当前元素的索引
arr 可选。当前元素所属的数组对

thisValue:可选。 传递给函数的值一般用 “this” 值。
如果这个参数为空, “undefined” 会传递给 “this” 值

返回值:

返回符合测试条件的第一个数组元素值,如果没有符合条件的则返回 undefined

注意:

find() 对于空数组,函数是不会执行的。

find() 并没有改变数组的原始值。

当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数

理解:

返回查找复合条件的第一个元素的具体的值

11、shift()方法

方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度

语法:

arr.shift()

返回值:

从数组中删除的元素; 如果数组为空则返回undefined

理解:

删除第一个元素,并返回一个新的数组

12、slice()方法

方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变

语法:

arr.slice([begin[, end]])

参数:

begin 可选
提取起始处的索引(从 0 开始),从该索引开始提取原数组元素。
如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,案slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
如果省略 begin,则 slice 从索引 0 开始。
如果 begin 大于原数组的长度,则会返回空数组。
end 可选
提取终止处的索引(从 0 开始),在该索引处结束提取原数组元素。slice 会提取原数组中索引从 begin 到 end 的所有元素(包含 begin,但不包含 end)。
slice(1,4) 会提取原数组中从第二个元素开始一直到第四个元素的所有元素 (索引为 1, 2, 3的元素)。
如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。
如果 end 被省略,则 slice 会一直提取到原数组末尾。
如果 end 大于数组的长度,slice 也会一直提取到原数组末尾。

返回值:

一个含有被提取元素的新数组。

理解:

截取开始索引到结束索引的数组元素,结束位置的索引不会被截取并返回

13、sort()方法

sort() 方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的

语法:

arr.sort()

理解:

通过UTF-16代码单元值序列对数组元素进行重新排序

14、splice()方法

splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容

语法:

arr.splice(要删除的下标, 删除的数量, 替换的元素);

//删除元素
arr.splice(要删除的下标, 删除的数量);

//添加元素
arr.splice(下标, 0, 要添加的元素);

//替换元素
arr.splice(替换的下标,替换的数量,'替换的内容')

理解:

通过参数来进行数组的删除添加和替换

15、unshift()方法

unshift() 方法将一个或多个元素添加到数组的开头

语法:

arr.unshift(element1, ..., elementN)

参数:

要添加到数组开头的元素或多个元素。

理解:

把参入的参数依次添加到数组的开头

16、forEach()方法

forEach() 方法对数组的每个元素执行一次给定的函数

语法:

arr.forEach(function(v, i){
    v //数组元素
    i //数组索引
});

理解:

数组的遍历

17、map()方法

方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。

语法:

array.map(function(currentValue,index,arr), thisValue)
实例:
创建了一个新数组,值为原数组中对应数字的平方根。
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9]

map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值(包括 undefined)组合起来形成一个新数组。

理解:

执行函数之后的数组

18、filter()方法

filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

语法:

array.filter(function(currentValue,index,arr), thisValue)

filter 为数组中的每个元素调用一次 callback 函数,并利用所有使得 callback 返回 true 或等价于 true 的值的元素创建一个新数组。callback 只会在已经赋值的索引上被调用,对于那些已经被删除或者从未被赋值的索引不会被调用。那些没有通过 callback 测试的元素会被跳过,不会被包含在新数组中

理解:

遍历数组,输出复合函数之后的数组

19、every()方法

every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。

语法:

array.every(function(currentValue,index,arr), thisValue)
  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true。

理解:

检测数值元素的每个元素是否都符合条件

20.some()方法

some() 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值

语法:

arr.some(callback(element[, index[, array]])[, thisArg])

callback
用来测试每个元素的函数,接受三个参数:
element
数组中正在处理的元素。
index 可选
数组中正在处理的元素的索引值。
array可选
some()被调用的数组。
thisArg可选
执行 callback 时使用的 this 值。

**注意:**如果用一个空数组进行测试,在任何情况下它返回的都是false

理解:

测试数组里至少有一个元素复合条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值