Javascript交换数组元素有没有更简单的方法来交换数组中的两个元素?var a = list[x], b = list[y];list[y] = a;list[x] = b;
3 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
如果您想要一个表达式,使用本机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()返回一个数组,并且在这种情况下,我们所需要的返回数组中的单个元件。
手掌心
TA贡献1942条经验 获得超3个赞
这似乎没问题....
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的干净方法。
添加回答
举报
0/150
提交
取消