js_coding

 

这里_list里面的内容是重复的,如果稍微调试一下就会很明白,但是还是容易掉进这个陷阱~~

let _list=[],_obj;
dataList.map(function(option){
    _obj.name=option.sname;//会修改已经插入_list的数据
    _obj.value=option.svalue;//同上
    _list.push(_obj)
})

  

修改后的代码

let _list=[],_obj;
dataList.map(function(option){
    _obj = new Object();
    _obj.name=option.sname;
    _obj.value=option.svalue;
    _list.push(_obj)
})

 

js_循环

continue;//跳出当前循环,上一层循环(如果存在)不受影响;

return;//必须在函数中执行,无论返回结果(true/false/...),函数结束。与循环语句无关,如果循环语句在函数之内,循环结束

注意:js数组原生forEach和jq对象的each语句中(原理是一致的) return;不能跳出循环!!

  arr.forEach(function(e,index,array){

    index==1 && (return;) //这里return相当于continue,函数执行结束,但是数组遍历继续执行

  })

  同理jq的each;

   $.each(obj/arr, function(k,v){

    k=='a' && (return;) //同上

  })

 

js_快排

function quicksort (arr){
    if(arr.length<=1){
        return arr;
    }
    var left = [];
    var right = [];
    var middle = arr[0];
    for(var i=1;i<arr.length;i++){
        if(arr[i]<middle){
            left.push(arr[i]);
        }else{
            right.push(arr[i]);
        }
    }
    return quicksort(left).concat([middle],quicksort(right));
}

 

posted @ 2017-03-01 18:13  zou1  阅读(167)  评论(0)    收藏  举报