Array.prototype.fill()

在 JavaScript 中,Array.prototype.fill() 是一个用于填充数组的方法。这个方法将指定的值填充到从起始索引到结束索引(不包括结束索引)的数组中的每个元素。如果省略结束索引,那么它将填充整个数组。

下面是 fill() 方法的基本语法:

arr.fill(value[, start[, end]])
  • value:用来填充数组的值。
  • start(可选):开始填充的起始索引,默认为 0。
  • end(可选):停止填充的结束索引(但不包括该索引),默认为数组的长度。

以下是一些使用 fill() 方法的例子:

// 创建一个长度为 5 的数组,并用 0 填充  
let array1 = new Array(5).fill(0);  
console.log(array1); // 输出: [0, 0, 0, 0, 0]  // 创建一个已存在的数组,并用 'a' 填充索引 1 到 3(不包括 3)  
let array2 = [1, 2, 3, 4, 5];  
array2.fill('a', 1, 3);  
console.log(array2); // 输出: [1, 'a', 'a', 4, 5]  // 创建一个数组并用对象填充  
let obj = {};  
let array3 = new Array(3).fill(obj);  
console.log(array3); // 输出: [{}, {}, {}]  
// 注意:数组中的所有元素都是同一个对象的引用,改变其中一个对象会影响所有  
array3[0].prop = 'test';  
console.log(array3); // 输出: [{ prop: 'test' }, { prop: 'test' }, { prop: 'test' }]  // 使用 fill() 方法填充字符串  
let array4 = ['a', 'b', 'c'];  
array4.fill('x', 0, 2);  
console.log(array4); // 输出: ['x', 'x', 'c']

请注意,当你使用对象(包括数组和函数)作为 fill() 方法的参数时,填充的是该对象的引用,而不是它的副本。因此,如果你在数组中的多个位置填充了同一个对象,并更改了该对象的一个属性,那么数组中所有该对象的引用都会显示更改。

如果你想用对象的副本填充数组,你需要提供一个函数来创建每个新对象,而不是直接使用一个已存在的对象。例如:

let array5 = new Array(3).fill({}).map((_, index) => ({ index }));  
console.log(array5); // 输出: [{ index: 0 }, { index: 1 }, { index: 2 }]

在这个例子中,fill({}) 填充了数组的每一个位置都指向同一个空对象,但随后 map() 方法被用来为每个位置创建一个新的对象,每个对象都有自己独立的 index 属性。

例:

import { reactive } from 'vue';  const allVideoData = [/* 初始化你的视频数据数组 */];  
const isCoverVisible = reactive(new Array(allVideoData.length).fill(false)); // 初始化与allVideoData长度相同的数组,并全部设置为falselet showCover = (index:any)=>{isCoverVisible[index] = true}
let hideCover = (index:any)=>{isCoverVisible[index] = false
}
<li v-for="(item, index) in allVideoData" :key="index" @mouseover="showCover(index)" @mouseout="hideCover(index)">  <img src="../../assets/img/allOne.jpg" alt="">  <div class="imgCover" v-show="isCoverVisible[index]">  <!-- 悬浮显示的元素内容 -->  </div>  <!-- 其他内容 -->  
</li>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/817570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT、ffmpeg视频监控分屏

1、支持分屏&#xff08;4&#xff0c;6&#xff0c;8&#xff0c;9&#xff0c;13&#xff0c;16&#xff0c;25&#xff0c;32&#xff0c;64&#xff09;切换 2、支持拖拽效果 3、支持播放mp4&#xff0c;rtmp等 4、本人亲测支持播放32路&#xff0c;64路没做测试 5、支持读…

C#面:如有50万个int类型的数字,现在需要判断⼀下⾥⾯是否存在重复的数字,请简要说⼀下思路

可以使用 List 集合的方法&#xff1a;Distinct() 或者 GroupBy() 。可以使用 Dictionary&#xff0c;Key值唯一性。可以使用 HashSet &#xff0c;它的元素具有唯一性&#xff1a;&#xff08;但是内存可能会爆&#xff09;新建一个HashSet&#xff0c;不断Add数字&#xff0c…

【C++成长记】C++入门 | 类和对象(中) |类的6个默认成员函数、构造函数、析构函数

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;C❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、类的6个默认成员函数 二、构造函数 1、概念 2、特性 三、析构函数 1、概念 2、特性 一、…

MYSQL索引优化方法

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小周同志&#xff0c;25届双非校招生Java选手&#xff0c;很高兴认识大家 &#x1f4d5;学习出处&#xff1a;本文是学自小林coding (xiaolincoding.com) 网站的MYSQL图解篇 &#x1f525;如果感觉博主的文章还不错的…

R语言计算:t分布及t检验

t分布理论基础 t分布也称Student’s t-distribution&#xff0c;主要出现在小样本统计推断中&#xff0c;特别是当样本量较小且总体标准差未知时&#xff0c;用于估计正态分布的均值。其定义基于正态分布和 X 2 X^{2} X2分布&#xff08;卡方分布&#xff09;。如果随机变量X服…

冯诺依曼体系结构+操作系统

操作系统篇 文章目录 一、冯诺依曼体系结构(1) 硬件数据流动角度&#xff0c;在数据层面&#xff1a;(2)程序运行为什么要加载到内存&#xff1f; 二、操作系统(Operator System)(1) Why 要有操作系统&#xff1f;(2)如何理解 “管理” &#xff1f; 一、冯诺依曼体系结构 /*-…

springCloudAlibaba集成seata实战(分布式事物详解)

一、分布式事务 1. 事务介绍 1.1 基础概念 事务&#xff1a;保证我们多个数据库操作的原子性&#xff0c;多个操作要么都成功要么都不成功 事务ACID原则 A&#xff08;Atomic&#xff09;原子性&#xff1a;构成事务的所有操作&#xff0c;要么都执行完成&#xff0c;要么全部…

三次握手与四次挥手到底是怎么回事?

三次握手和四次挥手是TCP/IP协议中建立和断开连接的关键步骤&#xff0c;它们是保证可靠通信的重要机制。这里将探讨这两个概念&#xff0c;并解释它们背后的原理。 三次握手 三次握手用于建立TCP连接&#xff0c;它由客户端和服务器之间发送的三个报文组成&#xff1a; 第一次…

市场份额第一:SmartX 领跑 23全年中国超融合软件市场

日前&#xff0c;IDC 发布《中国软件定义存储&#xff08;SDS&#xff09;及超融合存储系统&#xff08;HCI&#xff09;市场季度跟踪报告&#xff0c;2023 年第四季度》&#xff0c;详解中国区超融合发展趋势、市场份额规模以及厂商占比。 IDC 数据显示&#xff0c;2023 年全…

高防IP的技术实现

1. 分布式架构&#xff1a;高防IP采用分布式架构部署&#xff0c;将流量均匀分散到多个服务器上进行处理&#xff0c;以达到承载大流量攻击的能力。这样可以减轻单个服务器的负载压力&#xff0c;提高抗攻击能力。 架构设计&#xff1a; - 前端负载均衡器&#xff1a;用于接…

rust使用print控制台打印输出五颜六色的彩色红色字体

想要在控制台打印输出彩色的字体&#xff0c;可以使用一些已经封装好的依赖库&#xff0c;比如ansi_term这个依赖库&#xff0c;官方依赖库地址&#xff1a;https://crates.io/crates/ansi_term 安装依赖&#xff1a; cargo add ansi_term 或者在Cargo.toml文件中加入&#…

带洞平面三角分割结果的逆向算法

先标不重复点&#xff0c;按最近逐个插入。 只说原理。 不带洞的 1 2 4 2 3 4 两个三角形 结果 1 2 3 4 无重复 无洞 1 2 6 1 2 3 6 1 2 3 7 6 1 2 3 4 7 6 1 2 3 4 5 7 6 1 2 3 4 1 5 7 6 1 2 3 4 1 6 5 7 6 最终结果 1 2 3 4 1 6 5 7 6 按重复分割 1 2 3…

自定义滚动条样式:前端实现跨浏览器兼容

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

好好开始文生图

基于transformer 以前UNET架构&#xff0c;基于卷积&#xff0c;现在把卷积换成transformer Diffusion transformer 数据更少&#xff0c;文本数据就要更优质 训好了&#xff0c;通过增加额外模块&#xff0c;提高文本质量 如果给的文本时粗粒度的&#xff0c;那么生成的图片…

【mac】【python】新建项目虚拟环境后,使用命令pip出现错误:zsh: command not found: pip

【mac】【python】新建项目虚拟环境后&#xff0c;使用命令pip出现错误&#xff1a;zsh: command not found: pip 问题描述&#xff1a; 拉取或者创建新的python项目时&#xff0c;为项目添加了新的解释器&#xff0c;创建啦虚拟环境&#xff0c;但是执行pip命令的时候找不到命…

LeetCode 面试经典150题 202.快乐数

题目&#xff1a; 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到 1。如果这个过程 结…

《前端面试题》- JS基础 - 伪数组

第一次听说伪数组这个概念&#xff0c;听到的时候还以为是说CSS的伪类呢&#xff0c;网上一查&#xff0c;这东西原来还是个很常见的家伙。 何为伪数组 伪数组有两个特点&#xff1a; 具有length属性&#xff0c;其他属性&#xff08;索引&#xff09;为非负整数但是却不具备…

C ++ 和 C语言的优缺点分别是什么?

C语言&#xff0c;它简直就是编程世界的一块磐石。简洁、直接&#xff0c;让人一眼就能明白它想干嘛。它的运行速度快&#xff0c;接近硬件操作&#xff0c;特别适合那些需要直接与硬件打交道的场景。但就是因为这种接近硬件的特性&#xff0c;C语言在抽象层次上就显得有点捉襟…

【MCU开发规范】:MCU的性能测试

MCU的性能测试 前序性能评判方法MIPSCoreMark EEMBC其他参考 前序 我们平时做MCU开发时&#xff0c;前期硬件选型&#xff08;选那颗MCU&#xff09;基本由硬件工程师和架构决定&#xff0c;到软件开发时只是被动的开发一些具体功能&#xff0c;因此很少参与MCU的选型。 大部分…

Harbor Deployment (Helm)

文章目录 Harbor Deployment (Helm)前期准备创建stl证书 Harbor 部署推送镜像 Harbor Deployment (Helm) Helm 部署 Harbor需要使用共享存储&#xff0c;docker-compose 部署使用单台宿主机存储。 前期准备 创建stl证书 # 模拟域名&#xff0c;公司可以申请内部域名 # VIP bi…