我創建了一個函數來檢查數組的元素是否可被下一項整除。如果不是,則應從數組中刪除下一項。我創建了一個由兩個數組組成的測試數組。當我遍歷它們并 console.log 它們時,它們會按預期返回。當我在 for 循環而不是 console.log 中調用我的函數 (deleteItem) 時,它只返回第一個數組元素的結果,而不是第二個。我真的很困惑,不明白這一點。誰能給我一個提示我做錯了什么?先感謝您!let testArray = [[240,12, 10, 8,23],[240,12, 10, 8,24]];function deleteItem(array) { if(array.length<=1){ return array; } else{ for(i=0; i<array.length-1;i++) { let changed = true; while(changed){ if(array[i]%array[i+1]!=0) { array.splice(i+1,1); i=0; break; } else {changed=false}; } } } return array;}如果我只控制臺日志,它會按預期返回兩個元素:for(i=0;i<testArray.length;i++){ console.log( testArray[i]); //console.log(deleteItem( testArray[i]));}returns:[240, 12, 10, 8, 23][240, 12, 10, 8, 24]如果我使用我的函數,它只會調用第一個數組元素for(i=0;i<testArray.length;i++){ console.log( testArray[i]); console.log(deleteItem( testArray[i]));}returns:[240, 12, 10, 8, 23][240, 12]I expect:[240, 12, 10, 8, 23][240, 12][240, 12, 10, 8, 24][240, 12]
JS 無法對數組項調用函數
慕慕森
2022-10-08 17:31:14
