1.插入后返回数据
function sort_arr(arr_sort, n){
for(var i=arr_sort.length-1; i>=0 ;i--){
if( n == arr_sort[i] ){ return i};
if( n < arr_sort[i]){
arr_sort[i+1] = arr_sort[i];
}else{
break;
}
}
arr_sort[i+1] = n ;
return arr_sort;
}
2可以用cache来缓存内容,返回一个index,但是arr的变量属于局部?这个如何是好
var find_sort_arr = (function(){ var cache = {}; //utils function inser(arr, n){ for(var i=arr.length-1; i>=0 ;i--){ if( n < arr[i]){ arr[i+1] = arr[i]; }else{ break; } } arr[i+1] = n ; return i+1; } return function(arr, n){ var index; if( n in cache ) { return cache[n]; } if( index = String.prototype.indexOf.call(arr, n) != -1){ index = Math.floor( index/2 ); cache[ arr[index]+""] = index; }else{ //insert new element into sorted array index = inser(arr, n); cache[ arr[index] ] = index; } return index; } })();