Javascript交换数组元素

Javascript交换数组元素

有没有更简单的方法来交换数组中的两个元素?


var a = list[x], b = list[y];

list[y] = a;

list[x] = b;


隔江千里
浏览 939回答 3
3回答

慕沐林林

您只需要一个临时变量。var b = list[y];list[y] = list[x];list[x] = b;10年后编辑劫持最佳答案,我们正在采用大量ES6:给定数组arr = [1,2,3,4],您可以在一行中交换值,如下所示:[arr[0], arr[1]] = [arr[1], arr[0]];这会产生数组[2,1,3,4]。这是解构分配。分享编辑

侃侃无极

如果您想要一个表达式,使用本机javascript,请记住,拼接操作的返回值包含已删除的元素。var A = [1, 2, 3, 4, 5, 6, 7, 8, 9], x= 0, y= 1;A[x] = A.splice(y, 1, A[x])[0];alert(A); // alerts "2,1,3,4,5,6,7,8,9"编辑:的[0]是在作为表达式的结尾必要Array.splice()返回一个数组,并且在这种情况下,我们所需要的返回数组中的单个元件。

手掌心

这似乎没问题....var b = list[y];list[y] = list[x];list[x] = b;Howerver使用var b = list[y];表示将在范围的其余部分存在b变量。这可能会导致内存泄漏。不太可能,但更好的避免。将它放入Array.prototype.swap可能是一个好主意Array.prototype.swap = function (x,y) {   var b = this[x];   this[x] = this[y];   this[y] = b;   return this;}可以这样称为:list.swap( x, y )这是避免内存泄漏和DRY的干净方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript