Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một mảng số nguyên dương arr làm đối số duy nhất. Hàm phải nối các số trong mảng để tìm số đơn lẻ được biểu diễn bởi mảng, sau đó trả về một mảng mới biểu diễn số lớn hơn số mảng đầu vào một đơn vị.
Ví dụ, nếu đầu vào là:
Đầu vào
const arr = [6, 7, 3, 9];
Đầu ra
const output = [6, 7, 4, 0];
Giải thích
Vì số được biểu diễn bởi mảng đầu vào là 6739 và số cần tìm là 6740.
Ví dụ
Dưới đây là mã thực hiện:
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));
Kết quả
[6, 7, 4, 0]