Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

แยกอาร์เรย์ตัวเลขเป็นหลักเดี่ยวๆ ใน JavaScript ยังไง?

เรามีอาร์เรย์ของตัวเลข และเราต้องเขียนฟังก์ชัน splitDigit() ที่รับอาร์เรย์นี้และคืนค่าอาร์เรย์ของตัวเลขที่ตัวเลขมากกว่า 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
]