数组常用方法总结 (4) :slice / splice

news2024/11/20 23:20:03

slice

  • 不会改变原始数组。
  • 返回内容为截取的内容。
  • 两个入参 arr.slice(start,end),start 为截取开始位置,end 为截取停止位置。截取内容不包含 end。
  • 如果不传入参 end,则表示由 start 一直截取到数组的结尾。
<template>
    <div class="myBlock">
        <div class="tableBlock">
            <div class="title">原始数组</div>
            <el-table :data="tableData" :key="num" stripe border>
                <el-table-column prop="num" label="序号"> </el-table-column>
                <el-table-column prop="value" label=""> </el-table-column>
            </el-table>
        </div>
        <div class="operate">
            <el-button type="success" plain @click="operate"> slice </el-button>
        </div>
        <div class="title" v-if="newObject">操作后的返回值</div>
        <div class="newObject">
            {{ newObject }}
        </div>
    </div>
</template>
<script>
export default {
    data() {
        return {
            tableData: [
                { num: "0", value: "12" },
                { num: "1", value: "18" },
                { num: "2", value: "53" },
                { num: "3", value: "100" },
            ],
            num: 0,
            newObject: null,
        };
    },
    watch: {},
    mounted() {},
    methods: {
        operate() {
            this.newObject = this.tableData.slice(1, 2);
            this.num += 1;
        },
    },
};
</script>

操作前

操作前

操作后

  • this.tableData.slice(1, 2)
  • 从索引为 1 的位置(序号 1)开始,截取到索引为 2 的位置(序号 2 的前面,不包含序号 2)

操作后

splice

  • 对原始数组进行操作,原始数组会被改变。
  • 通过传参不同,可对数组进行删除、添加。替换的操作。

删除

  • 两个入参 arr.splice(index,num),index 表示开始删除的位置,num 表示想要删除的个数。
  • 原始数组会改变,返回值为删除掉的内容。
<template>
    <div class="myBlock">
        <div class="tableBlock">
            <div class="title">原始数组</div>
            <el-table :data="tableData" :key="num" stripe border>
                <el-table-column prop="num" label="序号"> </el-table-column>
                <el-table-column prop="value" label=""> </el-table-column>
            </el-table>
        </div>
        <div class="operate">
            <el-button type="success" plain @click="operate">
                splice
            </el-button>
        </div>
        <div class="title" v-if="newObject">操作后的返回值</div>
        <div class="newObject">
            {{ newObject }}
        </div>
    </div>
</template>
<script>
export default {
    data() {
        return {
            tableData: [
                { num: "0", value: "12" },
                { num: "1", value: "18" },
                { num: "2", value: "53" },
                { num: "3", value: "100" },
            ],
            num: 0,
            newObject: null,
        };
    },
    watch: {},
    mounted() {},
    methods: {
        operate() {
            this.newObject = this.tableData.splice(1, 2);
            this.num += 1;
        },
    },
};
</script>

操作前

操作前

操作后

  • this.tableData.splice(1, 2)
  • 从索引为 1 的对象(序号 1)开始,删除两项(序号 1,序号 2)

操作后

添加

  • 多个入参 arr.splice(index,0,…),前两个入参 index 表示想要插入数据的位置,0 表示不进行删除操作,后续的入参为想要插入数组的内容。
  • 原始数组会改变,返回值为删除掉的内容(未进行删除,则返回空数组)。
<template>
    <div class="myBlock">
        <div class="tableBlock">
            <div class="title">原始数组</div>
            <el-table :data="tableData" :key="num" stripe border>
                <el-table-column prop="num" label="序号"> </el-table-column>
                <el-table-column prop="value" label=""> </el-table-column>
            </el-table>
        </div>
        <div class="operate">
            <el-button type="success" plain @click="operate">
                splice
            </el-button>
        </div>
        <div class="title" v-if="newObject">操作后的返回值</div>
        <div class="newObject">
            {{ newObject }}
        </div>
    </div>
</template>
<script>
export default {
    data() {
        return {
            tableData: [
                { num: "0", value: "12" },
                { num: "1", value: "18" },
                { num: "2", value: "53" },
                { num: "3", value: "100" },
            ],
            num: 0,
            newObject: null,
        };
    },
    watch: {},
    mounted() {},
    methods: {
        operate() {
            let addArr = [
                { num: "4", value: "215" },
                { num: "5", value: "302" },
            ];
            this.newObject = this.tableData.splice(1, 0, ...addArr);
            this.num += 1;
        },
    },
};
</script>

操作前

操作前

操作后

  • this.tableData.splice(1, 0, …addArr)
  • 从索引为 1 的对象(序号1)开始,删除零项,再从数据被删除的位置(原索引为 1 的地方)插入新数组(序号 4,序号 5)

操作后

替换

  • 多个入参 arr.splice(index,num,…),前两个入参 index 表示想要插入数据的位置,num 表示删除的元素的个数,后续的入参为想要插入数组的内容。
  • 原始数组会改变,返回值为删除掉的内容。
<template>
    <div class="myBlock">
        <div class="tableBlock">
            <div class="title">原始数组</div>
            <el-table :data="tableData" :key="num" stripe border>
                <el-table-column prop="num" label="序号"> </el-table-column>
                <el-table-column prop="value" label=""> </el-table-column>
            </el-table>
        </div>
        <div class="operate">
            <el-button type="success" plain @click="operate">
                splice
            </el-button>
        </div>
        <div class="title" v-if="newObject">操作后的返回值</div>
        <div class="newObject">
            {{ newObject }}
        </div>
    </div>
</template>
<script>
export default {
    data() {
        return {
            tableData: [
                { num: "0", value: "12" },
                { num: "1", value: "18" },
                { num: "2", value: "53" },
                { num: "3", value: "100" },
            ],
            num: 0,
            newObject: null,
        };
    },
    watch: {},
    mounted() {},
    methods: {
        operate() {
            let addArr = [
                { num: "4", value: "215" },
                { num: "5", value: "302" },
            ];
            this.newObject = this.tableData.splice(1, 1, ...addArr);
            this.num += 1;
        },
    },
};
</script>

操作前

操作前

操作后

  • this.tableData.splice(1, 1, …addArr)
  • 从索引为 1 的对象(序号1)开始,删除一项(序号为 1 的对象),再从数据被删除的位置插入新数组(序号 4,序号 5)

操作后

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

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

相关文章

uniApp入门(一)

目录 一、项目准备 1.1、创建项目 1.2、创建页面 1.3、运行项目 1.4、pages.json文件的页面配置与全局配置 1.5、rpx单位 二、内置组件 2.1、基础内容 2.2、视图容器 2.2.1、scrollView 2.2.2、swiper 2.3、表单组件 2.4、路由跳转 2.5、配置tabBar导航菜单与ope…

基于微信小程序云开发的通用会议室预约小程序源码,通用会议室预约微信小程序源码

功能介绍 会议室是一个单位或部门的共用资源,但在使用的时候往往会遇到时间冲突、预约困难、不方便协调等问题。目前大部分公司是统一在公司群聊中预约&#xff0c;每次预约时&#xff0c;都需要翻一下聊天记录&#xff0c;了解是否有人预定以及预定时间等。如果冲突则需要找到…

北大硕士LeetCode算法专题课--动态规划和贪心算法

面试专题课&#xff1a; 北大硕士LeetCode算法专题课--递归和回溯_骨灰级收藏家的博客-CSDN博客 北大硕士LeetCode算法专题课-栈、队列相关问题_骨灰级收藏家的博客-CSDN博客 北大硕士LeetCode算法专题课--链表相关问题_骨灰级收藏家的博客-CSDN博客 北大硕士LeetCode算法…

<Python的函数(2)>——《Python》

目录 1.函数执行过程 2.链式调用 3.嵌套调用 4.函数递归 4.1 递归的概念 4.2 递归的优点 4.3 递归的缺点 5. 参数默认值 6. 关键字参数 7. 小结 1.函数执行过程 调用函数才会执行函数体代码. 不调用则不会执行. 函数体执行结束(或者遇到 return 语句), 则回到函数调…

清晰解析浮点型在内存中的存储 浮点型如何取出 IEEE754 SME 精度丢失 C语言进阶

&#x1f40e;作者的话 本文涵盖了浮点型在内存中的如何存储、如何取出、为何有精度丢失等知识点~ 跳跃式目录浮点型概括浮点数的存储bit位储存模型精度丢失浮点型的取出浮点数的取出实机演示浮点型概括 常见的浮点型数据有三种&#xff1a; 以科学计数法表示的&#xff1a;1…

php内核分析-fpm和df的问题思考

介绍 php中的disable_function是EG(ini_directives)来获得的&#xff0c;而phpinfo根据 EG(ini_directives) 中获取信息并打印。 然后通过zend_disable_function()函数去禁止&#xff0c;简单的说就是通过 func->handler ZEND_FN(display_disabled_function); 修改了handl…

ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet-2-02:芯科的软件解决方案Gecko SDK

【源码、文档、软件、硬件、技术交流、技术支持&#xff0c;入口见文末】 【所有相关IDE、SDK和例程源码均可从群文件免费获取&#xff0c;免安装&#xff0c;解压即用】 持续更新中&#xff0c;欢迎关注&#xff01; 虽然Silicon Labs是一家半导体公司&#xff0c;但是他们为…

手写spring13(xml自动扫描bean注册)

文章目录目标包扫描注解配置的使用占位符属性的填充设计类结构一、实现1、处理占位符配置——PropertyPlaceholderConfigurer2、定义Scope、Component拦截注解3、处理对象扫描装配——ClassPathBeanDefinitionScanner4、解析xml中调用扫描二、测试1、准备2、属性配置文件3、pri…

网络原理笔记一

文章目录1、局域网&#xff08;LAN&#xff09;2、广域网&#xff08;WAN&#xff09;3、网络通信基础1、IP地址2、端口号3、认识协议4、协议分层1、网络模型2、网络数据传输的基本流程1、局域网&#xff08;LAN&#xff09; 局域网全称&#xff1a;Local Area Network&#x…

【数据结构】顺序表深度剖析

目录 &#x1f6eb;前言&#x1f6eb;&#xff1a; &#x1f680;一、线性表概述&#x1f680;&#xff1a; &#x1f6f0;️二、顺序表&#x1f6f0;️&#xff1a; 1.概念及结构&#xff1a; 2.接口实现&#xff1a; ①.工程文件&#xff1a; ②.接口实现&#xff1a; ③.…

2023 铁人三项 CTF --- Misc wp

文章目录Misc一生壹世Misc手的必备技能套娃-1套娃-2套娃-3套娃-4套娃-5Misc 一生壹世 根据提示压缩包密码是谐音&#xff0c;所以猜测密码是1314&#xff0c;直接解压得到四个txt文件 然后用010分按照一生一世打开4个文件&#xff0c;发现每个文件的第一个字节拼起来是8950…

LeetCode题目笔记——1807. 替换字符串中的括号内容

文章目录题目描述题目难度——中等方法一&#xff1a;使用字典代码/Python代码/C总结题目描述 给你一个字符串 s &#xff0c;它包含一些括号对&#xff0c;每个括号中包含一个 非空 的键。 比方说&#xff0c;字符串 “(name)is(age)yearsold” 中&#xff0c;有 两个 括号对…

什么是聚宽量化?

聚宽量化交易其实是通过编程将策略写成计算机可识别的代码&#xff0c;具体说可以是以python这门编程语言将与券商那边的平台搭建&#xff0c;例如用聚宽的向导式策略生成器就能很快的将股票交易接口翻译出来的策略&#xff0c;以便将平时需要查询的融资账户的持仓情况来编写代…

区块链将传统的产业运行逻辑,改造成以个体为主导的运行逻辑

新的产业之所以被成为新产业&#xff0c;其中一个很重要的原因在于&#xff0c;它的底层运行逻辑&#xff0c;正在发生一场深刻而又彻底的改变。然而&#xff0c;如果深入分析这种能够给产业的内在运行逻辑产生重塑和改变的&#xff0c;依然在于区块链本身。从某种意义上来讲&a…

YOLOv8 深度详解!一文看懂,快速上手

YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本&#xff0c;目前支持图像分类、物体检测和实例分割任务&#xff0c;在还没有开源时就收到了用户的广泛关注。 考虑到 YOLOv8 的优异性能&#xff0c;MMYOLO 也在第一时间组织了复现&#xf…

一篇文章搞定字符串的旋转问题(数组旋转问题)!

目录 前言 一.如何实现字符串的旋转&#xff1f; 1.用冒泡的思想实现 2.分别逆序左右再整体逆序来实现 二.如何快速判断一个字符串是否为另外一个字符串旋转之后的字符串&#xff1f; 1.相关库函数的简略学习 2.利用库函数快速实现判断 总结 博客主页&#xff1a;张栩睿…

数据结构基础知识(一)

1 数据结构的基本概念和算法 考点 数据结构基本概念算法 1.1 数据结构的基本概念 数据 数据是指所有能输入到计算机中的描述客观事物的符号&#xff0c;包括文本、声音、 图像、符号等。 数据元素 数据元素十数据的基本单位&#xff0c;也称节点或记录。 数据项 数据项…

【数仓】FLink+CK

1.项目分层 ODS&#xff1a;原始数据&#xff0c;包含日志和业务数据DWD&#xff1a;根据数据对象为单位进行分流。比如订单、页面访问等。DIM&#xff1a;维度数据DWM&#xff1a;对于部分数据对象进行进一步加工&#xff0c;比如独立访问、跳出行为&#xff0c;也可以和维度…

谷粒商城项目笔记之高级篇(三)

目录1.9.22 提交订单的问题1)、订单号显示、应付金额回显2)、提交订单消息回显3&#xff09;、为了确保锁库存失败后&#xff0c;订单和订单项也能回滚&#xff0c;需要抛出异常1.9.23 创建库存上锁、解锁 业务交换机&队列1&#xff09;、流程梳理2&#xff09;、解锁库存实…

Vsftpd服务的部署及优化详解(图文)

目录 前言 实验环境 一、vsftpd的安装及启用 1、具体步骤 2、开启匿名用户访问功能并测试 二、vsftpd基本信息 三、匿名用户访问控制 四、本地用户访问控制 五、虚拟用户访问 1、建立虚拟用户访问 2、虚拟用户家目录的独立设定 3、用户配置独立 前言 vsftpd是“…