JavaScript有哪些不改变原始值的新方法?

JavaScript其实每年都会发布一些新功能,改变以往的一些不好的设计,比如今天我要和大家分享的:

如何不改变原始值?4个新方法

不改变原始值什么意思了?我举个例子

比如,我们需要在一个数组中插入一个新元素,使用 splice 方法,为了避免原数组改变,我不得不克隆一个新数组来操作。那假如有一个方法直接对原数组进行操作,返回一个插入好的新数组而又改变原数组那不是更高效吗?这种没有副作用的操作是我推荐的

以下四个方法对数据的处理不会造成意外的副作用,确保代码更易于维护和理解。

方法一: 数据排序(toSorted)

当我们需要对一个数组进行排序,有一个方法 sort ,为了不改变原来数组,我们需要这样操作

js 复制代码
const nums = [7, 2, 3, 9, 1];
const sorted = [...nums].sort();
console.log(sorted);

新方法这样操作

方法二: 数据插入(toSpliced)

当我们需要往一个数组里插入一个新元素,而又不希望改变原始数组,我们可以使用 splice方 法,这样操作:

js 复制代码
const fruits = ['apple', 'banana', 'orange', 'kiwi', 'grape'];
const newFruits = [...fruits];
newFruits.splice(1, 2, 'mango', 'strawberry');
console.log(newFruits)

新方法这样操作

方法三: 数据反转(toReverse)

当我们需要对一个数组反转排序,而又不希望改变原始数组,我们可以使用reverse方法,这样操作:

js 复制代码
const arr = [5, 4, 3, 2, 1];
const newArr = [...arr]
newArr.reverse()
console.log(newArr); 

新方法这样操作

方法四: 数据替换(with)

当我们需要替换数组中某一个元素时,最直接的方法就是通过索引直接去改变值,这样操作:

js 复制代码
const arr = ["dragon", "orc", "human", "elf", "undead"];
const replace = [...arr];
replace[2] = "goblin";
console.log(replace);

新方法这样操作

相关推荐
console.log('npc')13 分钟前
[特殊字符] AI Agent 工作台前端实战教程 · 新手入门指南
前端·人工智能
gCode Teacher 格码致知16 分钟前
前端教学2:ul标签的应用场合与经典案例
前端
const_qiu36 分钟前
第 2.5 章 2.5.6:前端登录、Token 无感续签与路由守卫
java·前端·人工智能·状态模式
用户83134859306981 小时前
Vue3 事件:常用用法与开发高频坑点
前端·javascript·vue.js
weixin_446260851 小时前
ReAct‑Evolve:基于轨迹反馈的ReAct智能体自主提示演化系统
前端·react.js·前端框架
其实防守也摸鱼1 小时前
存储管理:页面置换算法学习任务(测验题要求给出置换页面顺序,缺页次数,缺页率)
android·前端·数据库·学习·oracle·自动化
怒放的生命19911 小时前
前端项目 Docker 打包实操指南
前端·docker·容器
tedcloud1231 小时前
Docker Compose 部署 Immich:手机照片自动备份与常见故障排查
运维·前端·docker·容器·智能手机·开源·流程图
时间的情敌1 小时前
《WebGIS 前端的成长路线,三维可视化工程师需要掌握什么》
前端·状态模式
漫步人生走在路上1 小时前
用小语种SEO突破外贸B2B天花板:法语、德语市场的实测数据
开发语言·前端·javascript·人工智能·搜索引擎·ecmascript