JavaScript算法练习:将一个数插入数组并返回其索引值

将一个数按照大小顺序插入到一个数组中,并且找出这个数在该数组中的索引值。

可以利用push,sort方法,结合for或者for in循环,indexOf实现。

方法1: push,sort 结合for循环

 1 function compare(a,b){   //比较函数
 2      if(a < b){
 3         return -1;
 4     } else if(a > b){
 5         return 1;
 6     } else {
 7         return 0;
 8     }
 9 
10 }
11 
12 function where(arr,num){
13     arr.push(num);
14     arr.sort(compare);
15 
16     for(var i = 0,len = arr.length;i < len; i++){
17         if(arr[i] === num){
18             return i;
19         }
20     }
21 }
22 where([90,89],900) //2

 

方法2:push,sort ,for循环,indexOf

 1 function compare (a,b){
 2     if(a < b){
 3         return -1;
 4     } else if(a > b){
 5         return 1;
 6     } else{
 7         return 0;
 8     }
 9 
10 }
11 
12 function where(arr,num){
13     arr.push(num);
14     arr.sort(compare);
15     return arr.indexOf(num);
16 }
17 where([3,4,5,90],7); //3

 

方法3:push,sort,for    in

 1 function compare(a,b){
 2     if(a < b){
 3         return -1;
 4 
 5     } else if(a > b){
 6         return 1;
 7     } else {
 8         return 0;
 9     }
10 
11 }
12 
13 function where(arr,num){
14     arr.push(num);
15     arr.sort(compare);
16     for(var i in arr){
17         if(arr[i] >= num){
18             return parseInt(i);
19         }
20     }
21     return arr.length
22 
23 }
24 where([3,4,5,90],7); //3

其他方法:https://www.w3cplus.com/javascript/bonfire-where-do-i-belong.html

 

posted @ 2017-02-09 16:21  素雨雫晴  阅读(419)  评论(0)    收藏  举报