[前端] jsfill函数填充数组或对象的解决方法

2949 0
黑夜隐士 2023-2-25 12:13:51 | 显示全部楼层 |阅读模式
目录

    js fill函数填充数组或对象的问题扩展:js--数组的 fill() 填充方法详解
      前言正文1、fill()  语法2、fill() 的使用



js fill函数填充数组或对象的问题

js 的数组有一个 fill 方法,可以给数组填充数据,这个方法有三个参数,从左到右依次为 要填充的数据,填充的起始位置(默认为0),停止填充的位置(默认是数组的长度),这个方法不改变原数组,如下:
let arr = [0,0,0,0,0]
let res = arr.fill(1,1,2)
console.log(res)    // [0, 1, 0, 0, 0]
let oneParam = arr.fill(1)
console.log(oneParam)  // [1,1,1,1,1]
console.log(arr)   // [0,0,0,0,0]问题: 有一次,我根据这个方法想要初始化一个二维数组,如下:
let arr = new Array(5).fill([])我本来是想创建一个长度为5的数组,数组的每一项都是一个空数组,但是我遇到了一个问题,就是这个数组里面的5个数组其实指向的都是一个数组,即fill函数应该是直接我把传递的参数 [] 进行了赋值,所以我给其中一个数组赋值是,发现所有的数组都有值了,所以想要进行二维数组的初始化,不能这么做;
解决方法: 为了解决这个问题,想到了另外一个方法,就是使用map方法,如下:
let arr = new Array(5).fill(0).map(item=>[])  这里先创建一个长度为5,全为0的数组,然后map这个数组,返回一个空数组,此时每个数组就都不一样了,注意:这个fill(0)也是必要的,因为全为空的数组不会执行map函数

扩展:js--数组的 fill() 填充方法详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行