JavaScript 交换数组元素位置的几种方式
前言
交换数组元素位置是开发项目中经常用到的场景,总结下用过的几种方式。
第三方变量
最基础的方式,创建一个变量作为中转。
let temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
splice方法
splice() 方法用于插入、删除或替换数组的元素。如果是删除时,会返回被删除的元素数组。参数如下:

可使用splice方法来交换数组的位置,如下:
array.splice(index2,1,...array.splice(index1, 1 , array[index2]));
array.splice(index1, 1 , array[index2])会将index1位置上的元素替换为index2位置的元素,同时返回[array[index1]](注意此时返回的是数组,所以在代码中加入了扩展运算符...将数组转为参数序列)。再利用同样的方式将index2位置上的元素替换为被删除的原数组的array[index1]的值。完成交换
解构赋值
利用ES6的解构赋值能更加便捷的进行元素交换
[array[index1],array[index2]] = [array[index2],array[index1]];
等号的左右两边模式相同,就会将右边的值赋给左边的变量。解构赋值的详细介绍
以上就是我目前使用过的三种交换方式,以后会再补充。
JavaScript 交换数组元素位置的几种方式的更多相关文章
- Java 数组元素倒序的三种方式
		将数组元素反转有多种实现方式,这里介绍常见的三种. 直接数组元素对换 @Test public void testReverseSelf() throws Exception { System.out ... 
- js中获取页面元素节点的几种方式
		<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ... 
- JavaScript下实现交换数组元素上下移动例子
		// 交换数组元素 var swapItems = function(arr, index1, index2) { arr[index1] = arr.splice(index2, ... 
- Knockout获取数组元素索引的2种方法,在MVC中实现
		原文:Knockout获取数组元素索引的2种方法,在MVC中实现 在遍历数组.集合的时候,通常要获取元素的索引,本篇体验使用Knockout获取索引的2种方法. 假设有这样的一个模型: namespa ... 
- Java交换数组元素
		Java 交换数组元素 代码示例 import java.util.Arrays; import java.util.Collections; import java.util.List; impor ... 
- 网站开发进阶(十七)Html元素隐藏的几种方式
		Html元素隐藏的几种方式 隐藏Html元素的方法最常用的方法有css的display:none,一种方法两种实现方式,感兴趣的朋友可以了解下. 1.使用css style="display ... 
- java数组的声明由几种方式
		数组的声明由几种方式: 1,String []a = new String[length];再赋值 a[0]=?;....... 2,new完就直接初始化: String []a = new Stri ... 
- javascript删除数组元素的7个方法
		在JavaScript中,除了Object之外,Array类型(数组)恐怕就是最常用的类型了.与其他语言的数组相比,JavaScript中的Array非常灵活.这种灵活性有利有弊,好处是其富有创造性, ... 
- JavaScript中数组元素删除的七大方法汇总
		原文链接:https://blog.csdn.net/u010323023/article/details/52700770 在JavaScript中,除了Object之外,Array类型恐怕就是最常 ... 
随机推荐
- clone  data
			.clone( ) <div class="demo"></div> <script src = "./jquery.js"> ... 
- Ubuntu安装软件提示boot空间不足
			用sudo apt-get install gitlab-ci-multi-runner安装应用都会出现“gzip: stdout: No space left on device”的问题. boot ... 
- 九、Brideg 桥接模式
			设计原理: 代码清单: 抽象类 DisplayImpl public abstract class DisplayImpl { public abstract void rawOpen(); publ ... 
- mysql学习笔记--数据库单表查询
			一.查询语句 1. select [选项] 列名 [from 表名] [where 条件] [order by 排序] [group by 分组] [having 条件] [limit 限 ... 
- 前端移动开发之rem
			前言 作为一名前端工程师,我们不仅要会PC端开发,还要会移动端开发,而且现在移动端占据主要流量,所以掌握移动端开发的技能更是必须的. 那么进行移动端的开发,什么是必须,我们想要的效果是什么? 自适应. ... 
- node.js中net网络模块TCP服务端与客户端的使用
			node.js中net模块为我们提供了TCP服务器和客户端通信的各种接口. 一.创建服务器并监听端口 const net = require('net'); //创建一个tcp服务 //参数一表示创建 ... 
- 【转】Cron表达式详解
			Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: (1) Seconds Minutes Hours DayofMonth Mo ... 
- kubernetes namespace Terminating
			1.kubectl get namespace annoying-namespace-to-delete -o json > tmp.jsonthen edit tmp.json and rem ... 
- DVR NVR
			1.NVR: 是(Network Video Recorder即网络硬盘录像机)的缩写.NVR最主要的功能是通过网络接收IPC(网络摄像机)设备传输的数字视频码流,并进行存储.管理,从而实现网络化带来 ... 
- python 数据可视化(matplotlib)
			matpotlib 官网 :https://matplotlib.org/index.html matplotlib 可视化示例:https://matplotlib.org/gallery/inde ... 
