首页 > 解决方案 > 如何对以“0”分隔的数字数字的子组中的数字进行排序,并删除零?

问题描述

我有一个包含整数的变量,条件是变量中的数字 0(零)是一个数字和另一个数字之间的分隔符。这些数字将根据数字本身的数字进行分离和排序。之后,排序后的数字将再次组合在一起,没有分隔符,输出为整数形式。

所以例子:

dividerSort(74108520159);

我想要的输出是 147258159

但我的输出是: 112455789

到目前为止我尝试过,希望你能帮助我弄清楚

function dividerSort(num){
    const divider = 0     
        let getNum = Array.from(String(num), Number)     
        getNum = getNum.filter(item =>{         
                return item !== divider   
         })
        getNum = getNum.sort()
        getNum = getNum.join('');
        console.log(getNum);
}
dividerSort(74108520159);

标签: javascript

解决方案


function dividerSort(num){
  var result = '';
  var items = num.toString().split('0'); // items = ["741", "852", "159"]
  items.forEach( item => {
    result = result + item.split('').sort().join('') // see Explanation
  });
  console.log('Result: ', result);
}
dividerSort(74108520159); // Result:  147258159

说明: forEach() itemitems每个字符处拆分item.split('')。示例:"741"变成一个数组['7', '4', '1']。这个数组可以简单地用Array.sort()排序,这样它就变成['1', '4', '7']了,然后用Array.join()重新组合成一个字符串。在每次迭代中,将结果连接到结果......


推荐阅读