第三方开源库:underscore

需求:想要让对象也是用例如 map() filter()等方法
使用underscore库:
  1. 下载underscore包:
    npm i underscore

  2. 引入:
    <script src="./node_modules/underscore/underscore-min.js"></script>

    require(underscore)

  3. 使用:
    使用_前缀调用,返回一个数组
    例:
    let arr = _.map({ a: 1, b: 2, c: 3 },(v,k) => k + '=' + v)
    console.log(arr) // ["a=1", "b=2", "c=3"]

  4. 方法:

    map / filter

     传入的函数是function(value,key) 
     `第一个参数是value 第二个参数是key`
    
    let obj = {
    name: 'bob',
    school: 'No.1 middle school',
    address: 'xueyuan road'
    }
    //返回数组
    let upper = _.map(obj, function (value, key) {
        return `${key}:${value}`;
    });
    console.log(upper) 
    // [name:bob,school:No.1 middle school,address:xueyuan road]
    
    //返回对象
    let upperObj = _.mapObject(obj, function (value, key) {
        return `${key}:${value}`;
    });
    console.log(upperObj) 
    //{
    //	name:"name:bob",
    //	school:"school:No.1 middle school",
    //	address:"address:xueyuan road"
    //}
    

    every / some

     所有元素都满足条件时 `_.every()` 返回`true`
     至少一个元素满足条件时,`_.some()`返回`true`
    
    let res = _.every({ a: 1, b: 2, c: 3 }, (v, k) => v > 2)
    //false
    let res1 = _.some({ a: 1, b: 2, c: 3 }, (v, k) => v > 2)
    //true
    

    max / min

     只作用于`value`,忽略`key`
    
    _.max({ a: 1, b: 2, c: 3 }) //3
    

    groupBy

     `groupBy()`把集合的元素按照key归类,key由传入的函数返回
    
    let scores = [20, 81, 75, 40, 91, 59, 77, 66, 72, 88, 99]
    let groups = _.groupBy(scores,function(x){
    	if(x < 60){
    		return 'C'
    	}else if(x < 80){
    		return 'B'
    	}else{
    		return 'A'
    	}
    })
    /*
    result:
    {
    	A:[81, 91, 88, 99],
    	B:[75, 77, 66, 72],
    	C:[20, 40, 59]
    }
    */
    

    shuffle / sample

    shuffle()用洗牌算法随机打乱一个集合

    //每次结果都不一样
    _.shuffle([1,2,3,4,5,6]) //[3,5,6,2,4,1]
    

    sample()随机选择一个或多个元素

    //每次结果度不一样
    //随机选一个
    _.sample([1,2,3,4,5,6]) //3
    //随机选三个
    _.sample([1,2,3,4,5,6]) //[2,5,1]
    

    [文档自查][https://underscorejs.org/#collections]

    文中仅列出array的一些方法,还有很多方法,可以查看上链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值