簡體   English   中英

數組推送方法行為異常 javascript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM