Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ฉันจะแยกอาร์เรย์ของ Numbers เป็นตัวเลขแต่ละหลักใน JavaScript ได้อย่างไร


เรามีอาร์เรย์ของ Number literals และเราจำเป็นต้องเขียนฟังก์ชันโดยพูด splitDigit() ที่รับอาร์เรย์นี้และส่งคืนอาร์เรย์ของ Numbers โดยที่ตัวเลขที่มากกว่า 10 จะถูกแยกออกเป็นตัวเลขหลักเดียว

ตัวอย่างเช่น −

//หากอินพุตคือ:const arr =[ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106 ]//จากนั้นเอาต์พุตควรเป็น:const output =[ 9, 4, 9, 5, 9, 6, 9, 7, 9, 8, 9, 9, 1, 0, 0, 1, 0, 1, 1,0, 2, 1, 0, 3, 1, 0, 4, 1, 0, 5, 1, 0, 6 ];

มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน เราจะใช้วิธี Array.prototype.reduce() เพื่อแยกตัวเลข

ตัวอย่าง

const arr =[ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106 ]const splitNum =(n, res =[]) => { if(n) ){ return splitNum(Math.floor(n/10), [n % 10].concat(res)); }; return res;};const splitDigit =(arr) => { return arr.reduce((acc, val) => acc.concat(splitNum(val)), []);};console.log (splitDigit(arr) กลับ );

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น -

<ก่อนหน้า>[ 9, 4, 9, 5, 9, 6, 9, 7, 9, 8, 9, 9, 1, 0, 0, 1, 0, 1, 1, 0, 2, 1, 0, 3, 1, 0, 4, 1, 0, 5, 1, 0, 6]