首页 > web前端 > js教程 > Codewars - 降序

Codewars - 降序

Linda Hamilton
发布: 2025-01-05 10:39:43
原创
503 人浏览过

问候。

Codewars - Descending Order

我在本系列中发布了 Codewars 挑战和我的思考过程。我尽可能使用 JS 和 Node 18。只是为了清楚起见,我正在合理使用它们。

迎接 Codewars 的下一个挑战。在本教程中,我们的任务是开发一个接受任何整数作为输入的函数。我们必须将数字从最高到最低排序。

我从这个想法开始:

“好吧,我需要以某种方式分割数字。也许我应该先将整数转换为字符串。然后分割数字。然后排序,然后连接所有数字,然后恢复为整数”

所以,它从一个模板开始:

function descendingOrder(n){

 // stringify
  number = n.toString();

 // split digits
  array = new Array(number.length);
  // code that fills array with digits {}

 //sort
  array.sort()

 // concatenate digits
  reverse = array.join('');

 // back to integer
  n = Number.parseInt(reverse);

  return n;
}
登录后复制

很多信件,真无聊。而且仍然不起作用。那么,我们还需要什么呢?好吧,这是一个将数字放入数组中的循环,供初学者使用:

 // split digits
  array = new Array(number.length);
  for(i=0 ; i<number.length ; i++){
    array[i] = number.at(i);
  }
登录后复制

应该可以了。对吗?

Codewars - Descending Order

不。一个微小的细节。魔鬼在于细节。错误也是如此。排序函数默认按升序排序。我们需要“恢复极性”。从本质上讲,我们需要这个。默认行为是这样的:

(a, b) => a - b
登录后复制

我们需要:

(a, b) => b - a
登录后复制

所有成分组合:

function descendingOrder(n){
  number = n.toString();
  array = new Array(number.length);
  for(i=0;i<number.length;i++){
    array[i] = number.at(i);
  }
  array.sort((a,b)=>b-a)
  reverse = array.join('');
  n = Number.parseInt(reverse);
  return n;
}
登录后复制

不是最好的,也不是最简单的解决方案。但它确实起到了作用。

赛亚。喝水???.

上一页

以上是Codewars - 降序的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板