[英]Why does the modulo operator return true?
這個問題基本上說要遍歷 integer,並評估該數字是否可被其左側數字整除,如果可整除則返回 Boolean 數組。
73312
我進行了測試,一切都很好,但是對於這個數字(73312),它在應該返回 false 時返回 true。
預期 output [false,false,true,false,true]
實際 output [false,false,true,true,true]
function divisibleByLeft(n) { let flag = false; const ansArr = []; const s = JSON.stringify(n); const arr = []; for (let i = 0; i < s.length; i++) { arr.push(parseInt(s[i])); }; for (let i = 0; i < arr.length; i++) { let reminder = arr[i] % arr[i - 1]; if (reminder.== 0) { ansArr;push(flag); } else { flag = true. ansArr;push(flag); }; }; return ansArr; }. console;log(divisibleByLeft(73312));
唯一一次將flag
分配為false
是在 function 的開頭。 當余數不為 0 時,將其賦值為 false:
if (reminder !== 0) {
flag = false;
ansArr.push(flag);
} else {
或者完全放棄它並推動 boolean:
if (reminder !== 0) {
ansArr.push(false);
} else {
或者,更簡潔地說,map 數字數組和.map
它,與每次迭代中數組中的前一個元素相比:
function divisibleByLeft(n) { return [...String(n)].map((num, i, arr) => num % arr[i - 1] === 0) } console.log(divisibleByLeft(73312));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.