数组拓展方法

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的三方法是静态方法,直接传参调 用。

以上是关于数组拓展方法的主要内容,如果未能解决你的问题,请参考以下文章

几个关于js数组方法reduce的经典片段

几个关于js数组方法reduce的经典片段

有人可以在快速数组中给出“如果不存在则追加”方法的片段吗?

算法问题拓展——kadane算法及其二维数组的扩展

数组拓展方法

数组拓展方法