【问题标题】:Lodash _.map + console.log prints the iteratorLodash _.map + console.log 打印迭代器
【发布时间】:2015-10-05 22:16:23
【问题描述】:

我在 javascript 中偶然发现了这种意外行为

'use strict';
var _ = require('lodash');
_.map([1, 2, 3], function(x){console.log(x); });
_.map([1, 2, 3], console.log);

对 map 的两个调用表现不同。

第一个是逐行打印 1、2、3,而后者调用 map 会打印 map 产生的迭代器。

有没有更优雅的方式来编写第一个调用? (不使用 es6 => 运算符)

【问题讨论】:

    标签: javascript lodash


    【解决方案1】:

    您可以使用ary 来限制传递给console.log 的参数数量。

    _.map([1, 2, 3], _.ary(console.log, 1))
    

    【讨论】:

    • 不是我所期望的——但我在这里处理的是javascript,所以最好养成不去想的习惯
    • 是的;这是可选/可变参数和映射的陷阱。
    • 如果您收到 Illegal invocation 错误,请尝试以下操作:_.map([1, 2, 3], _.ary(console.log.bind(console), 1)) (reference)
    猜你喜欢
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2023-03-07
    • 2021-12-25
    • 2018-10-03
    • 2011-10-12
    相关资源
    最近更新 更多