前端基础——数组的方法,前端基础数组


push() 在数组末尾添加元素,接收一个或多个参数
unshift() 在数组首位添加元素,接收一个或多个参数
pop() 删除数组末尾元素
shift() 删除数组第一个元素
splice() 在任意位置添加或删除元素。原数组发生改变,返回删除的元素。
第一个参数表示要删除或参入元素的索引值
第二个参数表示要删除元素的个数(只插入传入0)
第三个参数表示要提添加到数组的元素
new Array(1) 新建一个长度为1的数组

slice() 传入索引值,截取元素,含头不含尾,或只传入一个参数截取到最后。原数组不变,返回截取的元素。
concat() 连接2个或多个数组,并返回结果
indexOf() 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1
lastIndexOf() 返回在数组中搜索到的与给定参数相等的元素的索引里最大的值,没有则返回-1
join() 将所有的数组元素连接成一个字符串
reverse() 颠倒数组中的元素
sort() 排序
toString() 将数组作为字符中返回,原数组不变
valueOf() 返回原数组
every() 对数组中的每一项运行给定函数,如果该函数每一项都返回true,则返回true
some() 对数组中的每一项运行给定函数,如果该函数任一项都返回true,则返回true
forEach() 对数组中的每一项运行给定函数,没有返回值
map() 对数组中的每一项运行给定函数,返回每次函数调用return的结果组成的函数
filter() 对数组中的每一项运行给定函数,返回该函数会返回true的项组成的函数
reduce() 接收一个函数作为参数,这个函数有四个参数:previousValue、currentValue、index、array。这个函数会返回一个将被叠加到累加器的值,reduce方法停止后会返回这个累加器。

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var sum = arr.reduce((previous, current) => previous + current);
// 55

reduceRight() 功能和 reduce() 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。
Array.isArray() 用于确定传递的值是否是一个 Array。

Array.from() 将类数组对象和可遍历的对象(如NodeList对象、字符串等)转为真正的数组

Array.from('hello')
// ['h', 'e', 'l', 'l', 'o']

let namesSet = new Set(['a', 'b'])
Array.from(namesSet) // ['a', 'b']

Array.of() 将一组值,转换为数组

Array() // []
Array(3) // [, , ,],每一项为empty
Array(3, 11, 8) // [3, 11, 8]

copyWithin() 在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。

Array.prototype.copyWithin(target, start = 0, end = this.length)

它接受三个参数。
target(必需):从该位置开始替换数据。如果为负值,表示倒数。含头不含尾。
start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示倒数。
end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。

[1, 2, 3, 4, 5].copyWithin(3, 2)
// [1, 2, 3, 3, 4], 数组长度没有发生变化

find() 接收一个函数作为参数,所有数组成员依次执行该回调函数,返回第一个符合条件的数组成员。如果没有符合条件的成员,则返回undefined。
findIndex() 接收一个函数作为参数,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。

fill() 使用给定值,填充一个数组。

keys() 是对键名的遍历
values() 是对键值的遍历
entries() 是对键值对的遍历。
它们都返回一个遍历器对象,可以使用for…of循环

for (let index of ['a', 'b'].keys()) {
  console.log(index);
}
// 0
// 1

for (let elem of ['a', 'b'].values()) {
  console.log(elem);
}
// 'a'
// 'b'

for (let [index, elem] of ['a', 'b'].entries()) {
  console.log(index, elem);
}
// 0 "a"
// 1 "b"

includes() 返回一个布尔值,表示某个数组是否包含给定的值
flat() 将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数组,对原数组没有影响。

[1, [2, [3]]].flat(Infinity)
// [1, 2, 3]

相关内容

    暂无相关文章