数组拓展

白昼怎懂夜的黑 提交于 2020-04-05 22:27:20

数组拓展

Array.from

将类数组的对象和可遍历的对象转化成数组。

        let divs = document.getElementsByTagName("div");
        //将类数组转成数组
        console.log(Array.from(divs).forEach((item)=>console.log(item)))
    
      //定义Array.from方法
        Array.icktFrom = function(arrayLike,fn){
            // 返回数组
            var result = [];
            //遍历 arrayLike
            for(var i = 0, len = arrayLike.length; i<len; i++){
                result[i] = fn?fn(arrayLike[i],i):arrayLike[i]
            }
            return result
        }
        Array.icktFrom(divs,(item,index)=>console.log(item))

Array.of

将一组参数值,转换成数组。 创建数组的四种方式,字面量[],构造函数new Array(),工厂函数Array(),静态方法Array.of()

// of方法
// console.log(Array(2))
// console.log(Array("2"))
// console.log(Array(2, 3))
// console.log(Array.of(2))
// console.log(Array.of("2"))
// console.log(Array.of(2, 3))
// 实现
// Array.icktOf = function() {
//     // 1 遍历参数,返回数组
//     // 2 from
//     // return Array.from(arguments)
//     // 3 借助数组的方法
//     return Array.prototype.slice.call(arguments)
// }
// console.log(Array.icktOf(2))
// console.log(Array.icktOf("2"))
// console.log(Array.icktOf(2, 3))

数组实例方法

copyWithin

在数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组find,

// 数组内部复制
let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
// 1 粘贴位置,2 复制的起始位置, 3 复制的结束位置
// [0, 1, 2, 4, 5, 6, 7, 7, 8, 9]
// console.log(arr.copyWithin(3, 4, 8));
// 实现
/***
 * 数组内部复制
 * pos      粘贴位置
 * start    复制起始位置
 * end      复制结束位置
 **/ 
Array.prototype.icktCopyWithIn = function(pos, start, end) {
    return arr.splice(pos, end - start, ...arr.slice(start, end)), arr;
}
console.log(arr.icktCopyWithIn(3, 4, 8));

find findIndex

在数组中查找成员 find返回成员值,不存在返回undefined。 findIndex 返回索引值,不存在返回-1

// find, findIndex indexOf, lastIndexOf

entries(),key() 和valuea()

是遍历数组,返回一个遍历器对象,可以用for...of循环进行遍历。 keys()是对键名的遍历,valuse()是对键值的遍历,entries()是对键值对的遍历

flat(), flatMap()

将嵌套的数组"拉平,变成一维数组,该方法返回一个新的数组。对原数组没有影响。 flatMap先调用map方法,再将得到新的数组拉平(调用flat方法)

// console.log([1, [2, 3], 4, [5, 6], 7].flat())
// console.log([1, [2, 3], 4, [5, 6], 7].flatMap((item) => item))
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!