【问题标题】:How do I loop through an array for a particular value in CoffeeScript如何循环遍历 CoffeeScript 中特定值的数组
【发布时间】:2020-02-22 05:08:21
【问题描述】:

我正在尝试使用 CoffeeScript 循环遍历数组以提取 full_name 值,如下所示。在过去的几天里,我一直在研究 Stack Overflow 和 CoffeeScript 的文档,但无法弄清楚。这是我目前拥有的。你能告诉我我做错了什么吗?

角度 JS

<disabled-display template="{{ctrl.getTechnicianNames()}}">

咖啡脚本

ctrl.getTechnicianNames = (full_name) ->
    array_of_persons = ctrl.technicians
    ctrl.getTechnicianNames full_name for full_name in array_of_persons

ctrl.technicians

{email: "email@address.com", first_name: "John", full_name: "John Johnson",
last_name: "Johnson"}, 
{email: "address@email.com", first_name: "Frank", full_name: "Frank Franklin",
last_name: "Franklin"}

【问题讨论】:

    标签: angularjs coffeescript


    【解决方案1】:
    ctrl.getTechnicianNames = ->
        ctrl.technicians.map((technician) => technician.full_name)
    

    CoffeeScript 没什么特别的,你只需要 Array.prototype.map: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

    【讨论】:

      【解决方案2】:

      还有一种更咖啡脚本的方式:

      ctrl.technitianNames = -> (t.full_name for t in @technicians)
      

      注意避免使用get 前缀。它被认为是除 Java 和 C++ 之外的(据我所知大多数)语言中的代码异味。

      【讨论】:

      • 请注意,我删除了 get 前缀 b/c,据我所知,这往往是 Java 和 C++ 以外的语言中的代码异味。
      • 是的!我认为这是你决定的一部分。我最终使用了show 而不是get,但这也可能是代码异味!
      猜你喜欢
      • 2015-12-27
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      相关资源
      最近更新 更多