1 function getDigitNumber(startNumber, endNumber) { 2 var reg = /^[1-9]\d*$/; 3 if (startNumber < endNumber && reg.test(startNumber) && reg.test(endNumber)) { 4 for (var i = startNumber; i < endNumber; i++) { 5 var numberLength = 0; // 得到這個數字是幾位數 6 var num = i; 7 while (num >= 1) { 8 num = num / 10; 9 numberLength++; 10 } 11 // console.log(numberLength) 12 var numArr = []; // 得到的每個數字的各個位數都是幾,123則改成[1,2,3],3845則改成[3,8,4,5] 13 for (var j = 0; j < numberLength; j++) { 14 let k = numberLength - j; 15 if (j == 0) { // 這里的邏輯請看下圖,這也是為什么第一位需要添加一個判斷 16 numArr.push(Math.floor(i / Math.pow(10, k - 1))); 17 } else { 18 numArr.push(Math.floor(i % Math.pow(10, k) / Math.pow(10, k - 1))); 19 } 20 } 21 console.log(i) 22 console.log(numArr) 23 } 24 25 }else{ 26 console.warn("請輸入正整數,且結束的數字大於等於開始數字") 27 } 28 }
具體的思路請看下圖,其實很簡單,就是知道,取余操作“%”和除法操作“/”