js fill方法赋值数组或对象代码
Admin 2023-04-01 群英技术资讯 976 次浏览
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函数
我们知道了很多了初始化数组的方法,但是初始化数组之后,数组中的每一项元素默认为 empty 空位占位,如何对数组这些空位添加默认的元素,ES6提供了 fill() 方法实现这一操作。本文总结数组 fill() 方法的详细使用。
fill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。返回修改后的原始数组,不创建新数组。
使用语法:array.fill( value [,start [,end]]),其中 :
value 用来填充数组元素的值,必填。
start 可选起始索引,默认值为0。
end 可选终止索引,默认值为 this.length。
// 当传入单个参数的时候,该方法会用该参数的值填充整个数组 var arr1 = new Array(5) console.log(arr1.fill(1)); //[1,1,1,1,1] var arr2 = [1, 2, 3, 4] console.log(arr2.fill(0)); //[0,0,0,0] // 当传入两个参数的时候,第一个参数为填充的元素,第二个为填充元素的起始位置 var arr3 = [0, 1, 2, 3, 4, 5, 6] console.log(arr3.fill(1, 3)); //[0,1,2,1,1,1,1] // 当传入三个参数的时候,第一个参数为填充的元素,第二个参数和第三个参数分别指填充元素的起始和终止位置,不修改终止位置元素 var arr4 = [0, 1, 2, 3, 4, 5] console.log(arr4.fill(1, 3, 5)); //[0,1,2,1,1,5] //如果提供的起始位置或结束位置为负数,则他们会被加上数组的长度来算出最终的位置,例如 起始位置为-1 就相当于array.length-1 var arr5 = [0, 1, 2, 3, 4, 5] console.log(arr5.fill(1, -3));//[0,1,2,1,1,1] var arr6 = [0, 1, 2, 3, 4, 5] console.log(arr6.fill(1, 3, -2));//[0,1,2,1,4,5]
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
jquery获取元素数量的方法:1、利用“$(元素)”语句获取指定的元素对象;2、利用length属性来获取指定元素对象中元素的数量,语法为“元素对象.length;”。
这篇文章我们来简单了解JavaScript数据可视化库,对于 JS 开发人员来说,可视化数据的能力与制作交互式网页一样有价值。下文给大家介绍了很多受欢迎或有趣的JavaScript数据可视化库,感兴趣的朋友就继续往下看吧。
这篇文章给大家分享的是用vue怎样做侧边的抽屉弹窗效果,以下代码比较简单,主要就是实现 侧边弹窗而且不会影响页面操作的方式,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
teleport 传送门组件,提供一种简洁的方式,可以指定它里面的内容的父元素,也就是说teleport 中的内容允许我们控制在任意的DOM中,使用简单,对VUE 3 teleport传送门相关知识感兴趣的朋友一起看看吧
二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008