[英]Array push method behaving strangely javascript
我有一個 function 將數組作為參數
[["52", ["41", "43", "61", "63"]], ["54", ["43", "45", "63", "65"]]]
“52”是我的硬幣, ["41", "43", "61", "63"]
是硬幣“52”的可能移動位置。 這同樣適用於 "54" 和["43", "45", "63", "65"]
。
在我的情況下cell.innerHTML == ''
用於位置“41”、“43”、“45”
function 行為正確,直到freeLocations.push(freeLocation);
它的輸出在哪里
["52", "41"], ["52", "43"], ["54", "43"] and ["54", "45"].
但是,allFreePostions.push(freeLocations) 僅輸出 3 個 arrays:["52", "41"], ["52", "43"] 和 ["54", "45"]。 ["54", "43"] 丟失。
奇怪的是,如果我只是為了調試而編輯freeLocations.push(freeLocation, j)
,丟失的數組會顯示在allFreePostions.push(freeLocations)
中。
我在這里錯過了什么嗎?
function checkFreeLocations(coins){ let allFreePostions = []; let dangerPosition = []; for (let i = 0; i < coins.length; i++){ coin = coins[i][0]; positions = coins[i][1]; for (let j = 0; j < positions.length; j++){ let freeLocations = []; let cell = document.getElementById(positions[j]); if (cell.innerHTML == ''){ freeLocation = positions[j]; freeLocations.push(coin); freeLocations.push(freeLocation); allFreePostions.push(freeLocations); } } } } checkFreeLocations([["52", ["41", "43", "61", "63"]], ["54", ["43", "45", "63", "65"]]])
看起來您的 HTML 中有非唯一 ID,這給您帶來了麻煩。
我相信 ["54", "43"] 未顯示的原因是因為您查看元素是否為空:
let cell = document.getElementById(positions[j]); if (cell.innerHTML == ''){ freeLocation = positions[j]; freeLocations.push(coin); freeLocations.push(freeLocation); allFreePostions.push(freeLocations); }
這種情況可能是您之前已經用 ['52', '43'] 填充了該元素。 但請添加您的 HTML 以便於掌握。
我不知道這是否有幫助,但這就是我更改硬幣內所有數據的方式。
let coins = [ ["52", ["41", "43", "61", "63"]], ["54", ["43", "45", "63", "65"]] ]; console.log(coins); function checkFreeLocations(coins){ let allFreePostions = []; for (let i = 0; i < coins.length; i++){ let freeLocations = []; freeLocations.push(i); let freeLocation = []; for (let j = 0; j < coins[i][1].length; j++){ let change = 'X'; freeLocation.push(change); } freeLocations.push(freeLocation); allFreePostions.push(freeLocations); } return allFreePostions; } console.log(checkFreeLocations(coins));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.