当前位置: 首页 > Web前端 > JavaScript

Web前端实训:如何在JavaScript中用初值填充数组

时间:2023-03-27 18:13:52 JavaScript

1.用基元填充数组假设我们想用给定值初始化一个长度为3的数组。array.fill()方法可以用固定值填充数组中从起始索引到结束索引的所有元素。结合Array(n):constlength=3;constfilledArray=Array(length).fill(0);filledArray;//[0,0,0]Array(length).fill(initialValue)是前端训练所需长度数组的创建便捷方法,用原始值(数字,字符串,布尔值)初始化。2.用对象填充数组如果需要用对象填充数组怎么办?2.1使用array.fill()上面的方法也支持传递对象作为初始值:constlength=3;constfilledArray=Array(length).fill({value:0});填充数组;//[{value:0},{value:0},{value:0}]Array(length).fill({value:0})创建一个长度为3的数组并将{value:0}分配给每个项目.注意:赋值是的同一个对象实例。这种方法创建一个包含同一对象实例的数组。如果数组中的任何一项恰好被修改,则数组中的每一项都会受到影响:constlength=3;constfilledArray=Array(length).fill({value:0});填充数组;//[{value:0},{value:0},{value:0}]filledArray[1].value=3;filledArray;//[{value:3},{value:3},{value:3}]change数组的第二项filledArray[1].value=3将更改数组中的所有项。2.2使用Array.from()Array.from()方法为数组或可迭代对象创建数组实例的新浅表副本。因此可以使用Array.from()方法轻松创建和初始化具有不同对象实例的数组:constlength=3;constfilledArray=Array.from(Array(length),()=>{return{value:0};});填充数组;//[{value:0},{value:0},{value:0}]如果数组中的任何一项被修改,只有那一项会受到影响,其他项不会受到影响:constlength=3;constfilledArray=Array.from(Array(length),()=>{return{value:0};});filledArray;//[{value:0},{value:0},{value:0}]filledArray[1].value=3;filledArray;//[{value:0},{value:3},{value:0}]filledArray[1].value=3只修改数组的第二项。2.3使用array.map()结合array.fill()既然Array(n)返回的是一个数组,那么web前端训练为什么还要用Array.from呢?直接用map不好吗?问题是array.map()跳过空元素:constlength=3;constfilledArray=Array(length).map(()=>{return{value:0};});filledArray;//[empty×3]解决方法很简单,空数组填null即可:constlength=3;constfilledArray=Array(length).fill(null).map(()=>{return{value:0};});填充数组;//[{value:0},{value:0},{value:0}]文章来自story