交换数组中的两个值

时间:2013-12-30 21:00:16

标签: javascript arrays

我无法弄清楚 JavaScript 代码在数组中交换两个值(本例中为数字)时的工作原理。

该函数(称为move)将您单击的值的位置与“”的位置交换。数组值显示在页面上,当您单击任何数字(通过onclick)时,函数将启动。

boxArray = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15",""]

function move() {

}

3 个答案:

答案 0 :(得分:3)

要交换两个值,请使用一些逻辑,将一个值存储在临时变量中,将第一个值设置为第二个,将第二个值设置为临时变量:

function swap(array, index1, index2) {
    var temp = array[index1];

    array[index1] = array[index2];
    array[index2] = temp;
}

真的很容易

FIDDLE

答案 1 :(得分:0)

也许这(这里是jsfiddle):

<button>1</button><button>2</button>

$('button').click(function() {
    var val = $(this).html();

    swap(val);
});

var boxArray = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15",""]

function swap(el) {
    var blankIndex = boxArray.indexOf(""),
        elIndex = boxArray.indexOf(el);

    boxArray[blankIndex] = el;
    boxArray[elIndex] = "";

    console.log(boxArray);
}

答案 2 :(得分:0)

我无法确切地说出你想要做什么,但我相信我得到了它的要点。 array.splice是您可能正在寻找的功能:

function move(arr, from, to) {
    if (from >= arr.length || to >= arr.length) return;
    var y = arr.splice(from, 1)[0];
    arr.splice(to, 0, y);
}

var x = [1,2,3];
move(x, 0, 2); // moves the value at position 0 to position 2: [2,3,1]