ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็มบวก arr เป็นอาร์กิวเมนต์เดียว
ฟังก์ชันควรก่อนรวมตัวเลขในอาร์เรย์เพื่อหาตัวเลขเดี่ยวที่อาร์เรย์แทน แล้วคืนค่าอาร์เรย์ใหม่ที่แทนตัวเลขที่มากกว่าตัวเลขของอาร์เรย์อินพุตขนาด 1
ตัวอย่างเช่น หากอินพุตคือ
อินพุต
const arr = [6, 7, 3, 9];
เอาต์พุต
const output = [6, 7, 4, 0];
คำอธิบายเอาต์พุต
เพราะตัวเลขที่อาร์เรย์อินพุตแทนคือ 6739 และตัวเลขที่ต้องการคือ 6740
ตัวอย่างโค้ด
const arr = [6, 7, 3, 9];
const justGreater = (arr = []) => {
if (!arr.every(v => v >= 0) || arr.length === 0) {
return null;
};
if (arr.some(v => v.toString().length > 1)) {
return null;
};
let res = [];
for (let i = 0; i < arr.length; i += 15) {
res.push(arr.slice(i, i + 15));
};
res[res.length - 1] = res[res.length - 1].join('') * 1 + 1;
res = res.map(v => Array.isArray(v) ? v.join('') * 1 : v);
return (res.join('')).split('').map(v => v * 1);
};
console.log(justGreater(arr));
ผลลัพธ์
[6, 7, 4, 0]