【问题标题】:How to write lodash function in es6 style?如何以 es6 风格编写 lodash 函数?
【发布时间】:2018-10-02 01:27:57
【问题描述】:

我有旧的 lodash 函数:

  data = _.reject(items, function(i) {
    return i.id == id;
  })

es6怎么写?

  data = _.reject(items, i => {
    return i.id == id;
  })

出错了

【问题讨论】:

  • 您遇到了哪个错误?此外,function() {...} 的 ES6 不亚于箭头函数。箭头函数只是提供更多选项。
  • 如果你要立即返回一个表达式的结果,你可以去掉{}括号(和return
  • 另外,单字母变量名也不是一个好主意,尤其是ii 不是指某种计数器时
  • @CertainPerformance: "如果你要立即返回表达式的结果,你可以去掉 { } 括号" ...和returnreturn 如果不使用大括号,则不能保留(return 是语句,无括号箭头函数只接受表达式)
  • got error - 扔掉它,你使用的是 Internet Exploder 或 nodejs 的早期(4.2 之前?)版本 - 我怎么了? ...顺便说一句,data = _.reject(items, i => i.id == id); 将是使用箭头符号的最紧凑的版本

标签: javascript ecmascript-6 lodash


【解决方案1】:

在这种情况下你不能使用 lodash,这取决于你的问题实际上是什么:

const items = [2, 3, 88, 99]

const smallItems = items.filter(item => item < 50)

console.log(smallItems) // 2, 3 // High numbers are rejected

或者...您可以根据需要在 ES6 中编写自己的拒绝

// Create function once 
const reject = (data, predicate) => data.filter(item => !predicate(item))

// Use elsewhere
const items = [2, 3, 88, 99]
const smallItems = reject(items, item => item > 50)    
console.log(smallItems)

【讨论】:

    猜你喜欢
    • 2017-10-31
    • 1970-01-01
    • 2016-01-11
    • 2022-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    相关资源
    最近更新 更多