如何在 javascript 中交换数组元素

news/2024/11/24 11:47:49/

文章目录

    • 在 JavaScript 中使用临时变量交换数组元素
    • 使用 ES6 析构函数赋值在 JavaScript 中交换数组元素
    • 使用按位异或和数组迭代在 JavaScript 中交换数组元素


交换两个元素的传统方法是使用临时变量。 在 JavaScript 中,我们可以轻松地将数组对象重新分配给默认设置为数组对象的变量,并使过程更进一步,以交换两个数组的元素。

同样,ES6 约定为普通变量和对象带来了更高效的交换。 另一种方法是使用另一种传统方法,即使用循环遍历数组元素并交换它们,读取索引。

这种方式太费时,还要考虑一些额外的代码行。

在这里,我们将看到所有可使交换任务更加灵活的优选示例。 让我们进入代码库!


在 JavaScript 中使用临时变量交换数组元素

在下面的示例中,我们将采用两个具有相应元素的数组。 我们的目标是分配一个新变量并将其中一个数组传输到那里。

然后将另一个数组重新分配给刚刚将其内容转移到变量的数组。 最后,将变量内容转移到我们选择的最后一个数组。

这是数组元素临时变量切换的基本操作。

代码片段:

var x = [1,2,3];
var y = [4,5,6];
var a;
a=x;
x=y
y=a;
console.log(x)
console.log(y)

输出:

使用临时变量交换数组元素

如您所见,x 包含 [1,2,3],y 包含 [4,5,6]。 当交换开始时,变量 a 获取 x 的元素,而 x 接收 y 的元素。

对于最后一步,y 附加 a 的内容。 结果推断出交换结果。


使用 ES6 析构函数赋值在 JavaScript 中交换数组元素

ES6 的析构函数赋值可以更轻松地交换两个数组,并且只需要一行代码。 只需要对方括号中的数组进行赋值,将右边倒置即可。

如果仔细观察,设置析构函数分配的模式是毫不费力的。

代码片段:

var x = [1,3,5];
var y = [2,4,6];
[x,y]=[y,x]
console.log(x)
console.log(y)

输出:

使用 ES6 析构函数赋值交换数组元素


使用按位异或和数组迭代在 JavaScript 中交换数组元素

除了上面提到的两种约定,还有多种交换数组元素的方法。 您可以使用减法、按位 XOR 运算或通过对数组应用迭代来使用临时变量规则进行交换。

在这里,我们计算了 XOR 操作来交换两个数组的元素。

代码片段:

var x = [7,42,7];
var y = [4,5,6];
if(x.length == y.length){for(var i=0;i<x.length;i++){x[i] = x[i] ^ y[i]y[i] = x[i] ^ y[i]x[i] = x[i] ^ y[i]}
}
console.log(x)
console.log(y)

输出:

使用按位异或和数组迭代来交换数组元素

让我们考虑这个例子,x[0] = 7 和 y[0] = 4。当我们执行 7^4 时,7 对应的位模式是 111,4 是 100。

在第一个 XOR 之后,我们得到 011,存储为 x[0]。 对于下一个 XOR,我们有 x[0] = 3 (011) 和 y[0] = 100,所以在这种情况下,结果存储在 y[0] 中是 111 = 7。

在 x[0] 中,我们将得到 111^011 = 100 (4)。 因此,我们交换了 x 和 y 数组的第一个元素,我们可以为每个索引元素重复此迭代。


http://www.ppmy.cn/news/715102.html

相关文章

10个低成本真实兼职,在家就能干的兼职有那些?

作者&#xff1a;苏乐爱写作 链接&#xff1a;https://www.zhihu.com/question/334623915/answer/837721607 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 10个低成本真实兼职&#xff0c;在家就能做。坚持3个月以…

JAVA计算机毕业设计大学校园兼职网站Mybatis+系统+数据库+调试部署

JAVA计算机毕业设计大学校园兼职网站Mybatis系统数据库调试部署 JAVA计算机毕业设计大学校园兼职网站Mybatis系统数据库调试部署 本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&#xff1a;idea eclipse 前端技术&#xff…

兼职网站,大家勿看

所有外包项目威客网站列表----来自程序员接私活网qxj.me 猪八戒 http://www.zhubajie.com/ 有佣金,建议别去坑死了 csto http://www.csto.com/ 开源中国众包 https://zb.oschina.net/ 程序员接私活网 http://www.qxj.me/ 推荐这个网站 孙悟空威客 http://www.swkweike.com/ 微推…

网上赚钱项目有哪些?推荐几个可持续发展的项目给大家

君子爱财&#xff0c;取之有道。随着互联网的发展&#xff0c;网上赚钱项目也越来越多&#xff0c;具体要选哪一类&#xff1f;很多人都幻想着一夜暴富&#xff0c;但真正一夜暴富的办法都写在了法律上&#xff0c;并非一下子就能赚到钱&#xff0c;这是很不切实际的思路。 今天…

2015年十大兼职岗位

2015年兼职工作的收入将主要来自三个方面&#xff1a;一是&#xff0c;传统的兼职工作收入&#xff0c;持续每周工作不超过40个小时&#xff1b;二是自由兼职或顾问工作收入&#xff1b;三是周期性兼职收入。以下为2015年十大兼职工作&#xff1a; 会计师 平均时薪&#xff1a…

在家用手机兼职稳定收入,三种实战方法

很多人在家空闲的时候想用手机兼职,只要方法找对,每天稳定收入其实并不是很难,手机兼职有很多种,但是下面三种兼职却是最实在的。 第一种方法:如果你足够博学,文字能力还可以的话,可以去像悟空问答、网易号、百度、新浪看点这样的平台答题,优质的回答每天有好的收益是完…

安利一个最适合程序员的小众高薪兼职!

2020年&#xff0c;生活把你镇住了吗&#xff1f; 疫情这只黑天鹅&#xff0c;在过去一年里给我们留下不可估量的影响。 大量企业倒闭&#xff0c;我们的收入变得越来越不稳定物价上涨&#xff0c;生活开销越来越大&#xff1b;随之还有花呗、房贷、信用卡还款压力.... 我身边不…

一年能挣150万? 网络写手赚钱秘诀曝光

转载自&#xff1a;http://news.xinhuanet.com/book/2007-01/29/content_5666910.htm ■网络写手一年能挣150万 最多一天写出&#xff13;万字 ■读者在网上阅读千字&#xff0c;需要支付两三分钱的费用 ■写手们想多挣钱只能疯狂敲字&#xff0c;最多的一天能写出&a…