【问题标题】:Dataweave 2.2 What's the difference between takeWhile and filter?Dataweave 2.2 takeWhile和filter有什么区别?
【发布时间】:2020-07-07 13:31:23
【问题描述】:
%dw 2.0
import * from dw::core::Arrays
output application/json
var arr = [0,1,2,4,3]
---
arr filter $ <= 2

%dw 2.0
import * from dw::core::Arrays
output application/json
var arr = [0,1,2,4,3]
---
arr takeWhile $ <= 2

它们都给出相同的结果。有什么区别吗?

【问题讨论】:

    标签: dataweave mulesoft


    【解决方案1】:

    嗨 Dale 有一个区别 takeWhile 将停止获取第一个不满足条件的元素的元素,这不是过滤器的情况,所以对于这个例子 [0,2,4,3,1]

    使用 TakeWhile

    %dw 2.0
    import * from dw::core::Arrays
    output application/json
    var arr = [0,2,4,3,1]
    ---
    arr takeWhile $ <= 2
    

    返回:

    [
      0,
      2
    ]
    

    带过滤器

    %dw 2.0
    import * from dw::core::Arrays
    output application/json
    var arr = [0,2,4,3,1]
    ---
    arr filter $ <= 2
    

    返回:

    [
      0,
      2,
      1
    ]
    

    【讨论】:

      【解决方案2】:

      takeWhile :在满足条件时从数组中选择元素,但在到达不满足条件的元素时停止选择过程。

      脚本

      %dw 2.0
      import * from dw::core::Arrays
      output application/json
      var arr = [0,2,4,3,1]
      ---
      arr takeWhile $ <= 2
      

      输出

      [
        0,
        2
      ]
      

      filter :要选择所有满足条件的元素,请使用该功能。 脚本

      %dw 2.0
      import * from dw::core::Arrays
      output application/json
      var arr = [0,2,4,3,1]
      ---
      arr filter $ <= 2
      

      输出

      [
        0,
        2,
        1
      ]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-24
        • 2011-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-14
        • 2014-02-05
        相关资源
        最近更新 更多