如何交换数组元素?

时间:2013-01-25 22:02:28

标签: arrays sorting unity3d swap unityscript

我有一个数组(在Unity3D的UnityScript文件中),其检查点为GameObjects,我正在尝试编写一个函数来交换它们。所以我有

public var cps: GameObject[]; //Initializes correctly

function swap(o1:GameObject,o2:GameObject)
{
    var TempGO:GameObject = o1;
    o1=o2;
    o2=TempGO;
}

swap(cps[0],cps[1]); // nothing happens here.

我应该使用指针(不确定它们是否存在于js中)或其他什么?

p.s。:我实际上是在尝试根据他们与某一点的距离在他们之间进行排序,因此任何其他建议也将受到赞赏。

谢谢!

2 个答案:

答案 0 :(得分:3)

如果要交换数组中的两个元素,则需要传递数组+两个索引。

答案 1 :(得分:1)

Javascript按值传递所有内容,不能通过引用传递内容,也没有指针。因此,如果要交换两个元素,则需要为其提供数组和索引:

function swap(var arr:GameObject[], var i, var j) {
    var temp:GameObject = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
}

并将其称为

swap(cps, 0, 1);
相关问题