当前位置: 首页 >> 国内时事 >> 直播,invite,彩虹旗-君库言论-以一家之言,蔽天下热点 >> 正文

直播,invite,彩虹旗-君库言论-以一家之言,蔽天下热点

2019年05月16日 09:21:51     作者:admin     分类:国内时事     阅读次数:174    

假如你想要对数组排序,或许会去百度去搜,所以有许多人教你用冒泡,什么二分刺进排序、堆排序,假如不太懂其间的代码意思,很丑陋理解。来,今日我来教咱们一个骚操作。

我运用的便是JS数组的索引来排序的,咱们都知道,索引便是从0开端,然后顺次递加的。好了,废话少说,开端撸了。

咱们来上完好的代码:

var arr = [1,4,2,5,21,3,44,12];//要排序的数组。
var res = [];//要回来的排序后的数组。
var arr1 = [];//中心用到的过渡数组
arr.forEach(a=>{
arr1[a] = 1;
});
arr1.forEach((r,index)=>{
if(r === 1){
res.push(index);//经过push默许是是升序,假如想降序能够选用unshift办法,或许在最终将数组回转一下即可。
}
})
console.log(res);

arr.forEach(a=>{//这一步很要害,咱们把要排序的数组的每一项当作了中心过渡数组的索引,并赋值为1(这儿不一定要是1,给一个特定的值就行)

arr1[a] = 1;

});

这时候arr1 的成果为: [empty, 1, 1, 1, 1, empty × 7, 1, empty × 8, 1, empty × 22, 1, empty × 10, 1]

这时候中心过渡数组arr1就有数据了,可是这个数组中有许多undefined,这时候咱们再做最终的扫除就好了。

写在最终:有人或许会提出来,假如数组中有重复项,那这种排序是不是不行了,当然能够, 做下处理,把重复的先拿到,重复了几回,然后在最终的成果数组中经过splice(index,0,item);对数组进行刺进操作即可。

技能总结:

  1. 这个便是巧用了数组的索引,默许便是一个从小到大的排序的特性。这种办法简略易懂。
  2. 数组的根本办法的运用,像forEach push unshift reverse splice(这个splice能够做删去,刺进,修正) 等。
除非特别注明,本文『直播,invite,彩虹旗-君库言论-以一家之言,蔽天下热点』来源于互联网、微信平台、QQ空间以及其它朋友推荐等,非本站作者原创。 本站作者admin不对本文拥有版权,如有侵犯,请投诉。我们会在72小时内删除。 但烦请转载时请标明出处:“本文转载于『君库言论-以一家之言,蔽天下热点』,原文地址:http://www.juongakusai.com/articles/2272.html