在JavaScript中对带小数点的字符串进行排序

假设我们有一个这样的字符串数组-

const arr = [ '.0', '.1', '.2', '.4', '.2.1', '.3', '.4.1', '.5', '.5.1.5' ];

我们需要编写一个包含一个这样的数组的JavaScript函数。我们的函数应该简单地对数组进行升序排序(如外行所见)。

这意味着字符串以“ .0”,后跟“ .1”,后跟“ .2”,依此类推。因此,排序后,数组应类似于-

const output = [ '.0', '.1', '.2.1', '.2, '.3', '.4', '.4.1', '.5', '.5.1.5' ];

示例

为此的代码将是-

const arr = [ '.0', '.1', '.2', '.4', '.2.1', '.3', '.4.1', '.5', '.5.1.5' ];

const compare = (a, b) => {

   if (a === b) {

      return 0

   };

   const aArr = a.split("."), bArr = b.split(".");

   for (let i = 0; i < Math.min(aArr.length, bArr.length); i++) {

      if (parseInt(aArr[i]) < parseInt(bArr[i])) {

         return -1

      };

      if (parseInt(aArr[i]) > parseInt(bArr[i])) {

         return 1

      };

   }

   if (aArr.length < bArr.length) {

      return -1

   };

   if (aArr.length > bArr.length) {

      return 1

   };

   return 0;

};

arr.sort(compare);

console.log(arr);

输出结果

控制台中的输出将是-

[

   '.0', '.1',

   '.2', '.2.1',

   '.3', '.4',

   '.4.1', '.5',

   '.5.1.5'

]

以上是 在JavaScript中对带小数点的字符串进行排序 的全部内容, 来源链接: utcz.com/z/326440.html

回到顶部