Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Số nhỏ nhất tạo được bằng cách xáo trộn tối đa một chữ số trong JavaScript

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào một số dương n. Ta có thể thực hiện tối đa một phép toán: chọn chỉ số của một chữ số trong số, loại bỏ chữ số tại chỉ số đó và chèn nó lại ở vị trí khác hoặc cùng vị trí để tìm số nhỏ nhất có thể. Hàm trả về số nhỏ nhất này.

Ví dụ

Dưới đây là mã nguồn:

const num = 354166; 
const smallestShuffle = (num) => { 
  const arr = String(num).split(''); 
  const { ind } = arr.reduce((acc, val, index) => { 
    let { value, ind } = acc; 
    if(value > val){ 
      value = val; 
      ind = index; 
    }; 
    return { value, ind }; 
  }, { value: Infinity, ind: -1 }); 
  const [item] = arr.splice(ind, 1); 
  arr.unshift(item); 
  return Number(arr.join('')); 
}; 
console.log(smallestShuffle(num));

Kết quả

Kết quả đầu ra trong console:

135466