这里_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