常用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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值