我无法弄清楚 JavaScript 代码在数组中交换两个值(本例中为数字)时的工作原理。
该函数(称为move
)将您单击的值的位置与“”的位置交换。数组值显示在页面上,当您单击任何数字(通过onclick
)时,函数将启动。
boxArray = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15",""]
function move() {
}
答案 0 :(得分:3)
要交换两个值,请使用一些逻辑,将一个值存储在临时变量中,将第一个值设置为第二个,将第二个值设置为临时变量:
function swap(array, index1, index2) {
var temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
}
真的很容易
答案 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]