JavaScript中最多改组一位数字所形成的最小数字
问题
我们需要编写一个接受正数n的JavaScript函数。我们最多可以做一个操作-
选择数字中某个数字的索引,在该索引处删除该数字并将其插入到另一个或数字中的相同位置,以便找到我们可以得到的最小数字。
我们的函数应该返回这个最小的数字。
示例
以下是代码-
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));输出结果
以下是控制台输出-
135466