Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một số num làm đối số duy nhất. Hàm phải tìm và trả về một số sao cho nó chỉ chứa và chứa tất cả các chữ số của số đầu vào và chỉ lớn hơn số đầu vào.
Nếu không tồn tại số như vậy, hàm phải trả về -1.
Ví dụ, nếu đầu vào là:
const num = 5656;
Thì đầu ra sẽ là:
const output = 5665;
Giải thích kết quả
Vì 5665 chỉ chứa và chứa tất cả các chữ số của 5656 và chỉ lớn hơn 5656.
Ví dụ
Dưới đây là mã thực hiện:
const num = 5656;
const justBigger = (num) => {
const sorted = num => ('' + num).split('').sort((a, b) => b - a);
const max = +sorted(num).join('');
for (let i = num + 1; i <= max; i++) {
if (max === +sorted(i).join('')) {
return i;
}
}
return -1;
};
console.log(justBigger(num));
Kết quả
Đầu ra trên console:
5665