大家可以在 www.codefordream.com 练习。
在JS中,尤其对于菜鸟而言,代码都是重复兀杂的,Lo-Dash 等第三方javascript库可以改进我们的编码过程和编码质量。
下面是我们用的比较多的方法
_.map和_.find方法来精简代码:
下面是一个for循环复杂嵌套的例子:(其实完成的功能很简单)
var items = loadAllItems(); for(var i = 0; i < inputs.length;i ++) { for(var j = 0; j < item.length; j ++) { if(new_inputs.length === 0 && inputs[i].substring(0,10) == item[j].barcode) { new_inputs.push(item[j]); } } }//通过遍历inputs和item来将相同的barcode添加到新建的数组new_inputs中 用_.map 和 _.find 精简后代码如下: var new_inputs = _.map(inputs,function(input) {//作用相当于遍历inputs return _.find(items,function(item_tmp) {//作用相当于遍历item,但find不一定会遍历完整个数组,它会找到第一个符合条件的barcode后停止 return new_inputs.length === 0 && input.substring(0,10) == item_tmp.barcode; }); });
还有找出数组中不同的项
用传统方法写出:
var a = [1,3,4,5]; var b = [3,4,8]; for(var i = 0; i < a.length; i ++) { for(var j = 0; j < b.length; j ++) { if(a[i] != b[j]) { console(a[i] + b[j]); } } }
用_.difference方法代码非常简练
var array = _.difference([1, 3, 4, 5], [3, 4, 8]); console.log(array);
还有_.filter方法,和find方法类似,区别是它会遍历玩整个数组后找到符合条件的元素。