当前位置: 首页 > article >正文

slice和splice的区别

在JavaScript中,slicespliceArray 对象的两个方法,它们都有助于操作数组,但它们的功能和用途有所不同。

1. slice

slice 方法用于从已有的数组返回选定的元素的一个浅拷贝到一个新数组对象中,而不改变原数组。

语法
array.slice(start, end)
参数
  • start (可选): 开始截取的位置,如果是负数,表示从数组结尾开始计算的位置。
  • end (可选): 结束截取的位置(不包括此位置),如果是负数,表示从数组结尾开始计算的位置。
返回值
  • 返回一个新的数组,包含从 startend 之间(不包括 end)的元素。
示例
const numbers = [1, 2, 3, 4, 5];
const sliced = numbers.slice(1, 3); // 截取索引1到2之间的元素
console.log(sliced); // 输出: [2, 3]
console.log(numbers); // 输出: [1, 2, 3, 4, 5] (原数组不变)

2. splice

splice 方法用于删除、替换或添加数组中的元素。它会直接修改原数组,并返回一个包含被删除元素的新数组。

语法
array.splice(start, deleteCount[, item1[, item2[, ...[, itemN]]]])
参数
  • start: 必须,从该位置开始修改数组。
  • deleteCount: 必须,要删除的元素数量。如果设置为 0,则不会删除任何元素。
  • item1, item2, ..., itemN: 可选,从 start 位置开始插入的新元素。
返回值
  • 返回一个数组,包含被删除的元素。
示例
  • 删除元素

    const numbers = [1, 2, 3, 4, 5];
    const removed = numbers.splice(1, 2); // 从索引1开始删除2个元素
    console.log(removed); // 输出: [2, 3]
    console.log(numbers); // 输出: [1, 4, 5] (原数组被修改)
    
  • 替换元素

    const numbers = [1, 2, 3, 4, 5];
    const replaced = numbers.splice(1, 2, 'a', 'b'); // 从索引1开始删除2个元素,并插入'a'和'b'
    console.log(replaced); // 输出: [2, 3]
    console.log(numbers); // 输出: [1, 'a', 'b', 4, 5] (原数组被修改)
    
  • 添加元素

    const numbers = [1, 2, 3, 4, 5];
    const added = numbers.splice(2, 0, 'a', 'b'); // 从索引2开始添加元素,不删除任何元素
    console.log(added); // 输出: []
    console.log(numbers); // 输出: [1, 2, 'a', 'b', 3, 4, 5] (原数组被修改)
    

总结

  • slice 用于从数组中提取一部分元素,并返回一个新的数组。原数组保持不变。
  • splice 用于直接修改数组,可以用来删除、替换或添加元素。它会改变原数组,并返回一个包含被删除元素的新数组。

http://www.kler.cn/a/279953.html

相关文章:

  • 一个prolog最简单推理示例
  • 小程序路由传参和获取页面栈方法
  • PEFT qwen2 lora微调模型训练案例
  • Datawhale AI夏令营
  • AST: Asymmetric Student-Teacher Networks for Industrial Anomaly Detection代码运行
  • Git Record
  • 稀疏数据的优化之道:PyTorch中torch.sparse的高效应用
  • 【pytorch深度学习——小样本学习策略】网格搜索和遗传算法混合优化支持向量机的小样本学习策略进行预测
  • 隧道代理ip使用
  • JVM上篇:内存与垃圾回收篇-07-方法区
  • 基于ZYNQ SOC的软件无线电处理平台
  • GPT-6曝光!阉割版「草莓」秋季兑现
  • Pytorch 模型保存与加载
  • [论文笔记] megatron 大模型超参搜索pipeline
  • 10款免费电脑录屏软件盘点,2024年最新录屏工具排行榜
  • 数据结构与算法——动态规划
  • 并行动力:用PyTorch在多GPU上释放深度学习潜能
  • UE5 蓝图 计算当前时间段
  • 大模型实战-FinGLM解析金融财报做RAG经验参考篇
  • Ado.Net基本操作