常用Underscore.js方法整理

each_.each(list, iteratee, [context]) Alias: forEach
遍历list中的所有元素,按顺序用每个元素当做参数调用iteratee函数。如果传递了context参数,则把iteratee绑定到contet对象上。每次调用iteratee
绑定到context对象上。

每次调用iteratee都会传递三个参数:(element,index,list).如果list是各Javascript对象,iteratee的参数是(value,key,list).返回的list以方便链式调用

_.each(selectField,function (value, key) {
       logData.push({
        "field":key,
        "oldValue":selectField[key],
        "newValue":""
        });
});

map _.map(list,iteratee,[context]) Alias:collect
通过对list里的每个元素调用转换函数(iteratee迭代器)生成一个与之相对应的数组。iteratee传递三个参数:value,然后是迭代index(或key 如果list是个Javasript对象,这个参数就是key) 最后一个是引用指向整个list

var conditions =  _.map(condition, function(o){ 
    return _.extend(o, {SPVID: that.SPVID})
});

find _.find(list,predicate,[context]) Alias:detect
在list中逐项查找,返回第一个通过predicate迭代函数真值检测的元素值,如果没有元素通过检测则返回undefined。如果找到匹配的元素,函数将立即返回,不会遍历整个list

//默认置灰【停止清算】
     var stopBtn = _.find(that.$clearGrid.datagrid("options").toolbar, 
     function(obj){
          return obj.iconCls == "icon-remove";
        });

filter _.filter(list,predicate,[context]) Alias: select
遍历list中的每个值,返回所有通过predicate真值检测的元素组成的数组。(注:如果存在原生filter方法,则用原生的filter方法)

conditionInfo = _.filter(conditionInfo, function(condData){
     return -1 >= _.indexOf(condArr, condData.CONDITIONID)&& 
 -1 >= _.indexOf(["8005", "8006", "8104", "8105", "8204", "8205"], condData.CONDITIONID);
});


$spvId.combobox({//这里是过滤操作  
            loadFilter: function(data) {
                return  _.filter(data,function (spv){
                    return spv.CUSTODIANID =="0"; 
                    //表示没有托管人
                })
            }
        });

var clearRows1 = _.filter(clearRows, function(clearData){
        return clearData.STATUS != 2;
});

pluck _.pluck(list,propertyName)
pluck也需是map最常用的用例模型的简化版本,即萃取数组对象中某属性值,返回一个数组

var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];
_.pluck(stooges, 'name');
=> ["moe", "larry", "curly"]

//若不存在正在执行的步骤,则取消置灰【开始清算】按钮
var clearArrs = _.pluck(that.$clearGrid.datagrid("getRows"),'STATUS');

var clearArrs = _.pluck(clearRows,'STATUS');
if(_.indexOf(clearArrs, '2') > -1 ){
    var clearRows1 = _.filter(clearRows, function(clearData){
        return clearData.STATUS != 2;
    });
}

var spvs = _.pluck(spvCustodianuserRights, 'SPVID').join(",");
var spvManager = _.pluck(that.model.get("spvCustodian"), 'SPVID');

pick _.pick(object,*keys)
返回一个object副本,只过滤出keys(有效的键组成的数组)参数指定的属性值,或者接受一个判断函数,指定挑选哪个key

_.pick({name: 'moe', age: 50, userid: 'moe1'}, 'name', 'age');
=> {name: 'moe', age: 50}
_.pick({name: 'moe', age: 50, userid: 'moe1'}, function(value, key, object) {
  return _.isNumber(value);
});
=> {age: 50}

indexOf _.indexOf(array,value,[isSorted])
返回value在该array中的索引值,如果value不存在array中返回-1。使用原生的indexOf函数,除非他失效。如果你正在使用一个大叔组,你知道数组研究排序,传递true给isSorted讲更快的额用二进制搜索。
或者传递一个数字作为第三个参数,为了在给定的索引值的数组中寻找第一个匹配值。

_.indexOf([1,2,3],2);
=> 1

你可能感兴趣的:(试用期技术整理)