function filter(array,value){
var len = array.length;
var newArray=[];
for(var i=0;i<len;i++){
if(array[i]<value){
newArray.push(array[i])
}
}
return newArray;
}
var a = [23,26,27,29,30,40,48,50];
var $a = filter(a,46);

解决方案 »

  1.   

    方法1:向新数组中添加符合条件的var a = [23,26,27,29,30,40,48,50];
    var b = 46;
    var c = [];
    for (var i = 0; i < a.length; i++) {
    if (a[i] < b) {
    c.push(a[i]);
    }
    }
    alert(c);
    方法2:从原数组中删除不符合条件的var a = [23,26,27,29,30,40,48,50];
    var b = 46;
    for (var i = 0; i < a.length; i++) {
    if (a[i] >= b) {
    a.splice(i);
    }
    }
    alert(a);
    方法3:如果数组内容是已排序的,且数据量较大,可以通过二分法等方式,逐步接近指定数字在数组中的位置,再截取这个位置左侧的数组元素,这样可以减少一些比较次数,提高效率。就不具体举例了