数组拓展方法
Posted 纸 飞机
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组拓展方法相关的知识,希望对你有一定的参考价值。
展开运算符(...)
//非数组方法,而是可以用在数组等可迭代对象上,将参数展开成逗号相连的序列。
console.log(l,...[2,3,4], 5)
//l, 2, 3, 4, 5
Array.from
//将两类对象转为真正的数组:伪数组对象(拥有length属性和索引属性)和可迭代对象(iterable)
let arrayLike = {
'0':'a',
length: 3
};
let arr = Array.from(arrayLike);
//['a','b','c']
Array.of
//将一组值,转换为数组
Array.of(3,11,8) //[3,11,8]
fill()
//用给定值填充一个数组,并返回修改后的数组
let arr = ['w','b'];
arr.fill('i') //['i','i']
arr.fill('o',1)//['i','o'], 1表示填充起始位置
new Array(3).fill('k').fill('r',1,2)
//['k','r','k'], 2表示填充结束位置
includes()
//表示某个数组是否包含给定的值
[1,2,3].includes(2) //true
[1,2,3].includes(4) //false
find()和 findlndex()
//find用于找出第一个符合条件的数组成员,如果没有则返回undefined
[1,5,10,15].find(function (value,index,arr){
return value > 9;
})
//10
//findIndex: 个符合条件的数组成员的位置,如果都不符合则返回-1
[1,5,10,15].
findIndex(function(value, index, arr) {
return value > 9;
))
//2
keys()
//返回一个包含数组索引的迭代器(Iterator),能被for of遍历。
let arr = [l,2,234,'sdf',-2];
let iter = arr.keys()
iter.next() //{value: 0, done: false}
iter.next() //{value: 1, done: false}
------------------
let arr2 = ['a','b','c'];
let iter2 = arr2.keys()
for (let a of iter2){
console.log(a)
}
//0 1 2
values()
//返回一个包含数组值的迭代器(Iterator),能被for of遍历。
let arr = [1,2,234,'sdf' ,-2];
let iter = arr.values()
iter.next() //{value: 1, done: false}
iter.next() //{value: 2, done: false}
--------------
let arr2 = ['a','b','c'];
let iter2 = arr2.values()
for (let a of iter2){
console.log(a)
}
//a b c
entries()
//返回一个包含数组索弓/值对的迭代器(Iterator),能被for of遍历。
let arr =[1,2,234,'sdf',-2];
let iter = arr.entries();
iter.next() //{value: [0,1], done: false}
iter.next() //{value: [1,2], done: false}
let arr2 = ['a','b','c'];
let iter2 = arr2.entries()
for (let a of iter2){
console.log(a)
}
//[0,"a"] [1,'b'] [2,'c']
Set、 Map、Array、 Object都有keys,values和 entries。三个方法,方法分别返回数据结构的键名, 键值,名/值对(迭代时用数组展示)。
Sets、Map、Array以迭代器的形式返回,Object以数组形式返回。
Set、Map、Array的三方法是原型上的方法; 对象调用,Object的三方法是静态方法,直接传参调 用。
以上是关于数组拓展方法的主要内容,如果未能解决你的问题,请参考以下文章