underscorejs-reduceRight学习

2.4 reduceRight

2.4.1 语法:

_.reduceRight(list, iteratee, memo, [context])

2.3.2 说明:

reduceRight和reduce一样把list中元素归结为一个单独的数值,区别是reduceRight从list右边开始遍历。

2.3.3 代码示例:

示例一:用reduceRight精简数组
var list = [
    [0, 1],
    [2, 3],
    [4, 5]
];

var flat = _.reduceRight(list, function (memo, element) {
    return memo.concat(element);
});

console.log(flat); //= > [4, 5, 2, 3, 0, 1]
示例二:list也可以字符串
var flat = _.reduceRight('0123456789', function (a, b) {
    return a.concat(b); //返回数组
}, []); //试试这里的数组不传会如何

console.log(flat); //= > ["9", "8", "7", "6", "5", "4", "3", "2", "1", "0"]
示例三:context可以改变iteratee内部的this
var data = [{name: 'iori'}, {name: 'kyo'}];
var context = {city : 'hangzhou'};

var html = _.reduceRight(data, function(memo, element){
    return memo + '<p>' + this.city + ':' + element.name + '</p>';
}, '', context);

console.log(html); //=> <p>hangzhou:kyo</p><p>hangzhou:iori</p>

2.3.4 context如果是null或undefined会是什么情况(坑)

_.reduceRight([1, 2], function (memo, element) {
    console.log(this); //this已经不是null了
    return memo + this;
}, '', null);

2.3.5 _.flodr是_.reduceRight的别名

var flat = _.foldr([[1], 2, 3], function (memo, element) {
    return memo.concat(element);
}, []);
console.log(flat); //=> [3, 2, 1]

gitbook地址:https://www.gitbook.com/book/niec-fe/underscorejs/details

转载于:https://www.cnblogs.com/kyo4311/p/5156678.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值