【问题标题】:reversed range using lodash使用 lodash 反转范围
【发布时间】:2014-04-17 10:54:55
【问题描述】:

lodash 中是否有类似于 python 反转范围的内容。

在python中

   list(reversed(range(0, 4)))
=> [3, 2, 1, 0]
   list(reversed(range(3, 4)))
=> [3]

在 lodash 中

 console.log(_.range(3,4,-1))
[]
   console.log(_.range(0, 4, -1));
[]

【问题讨论】:

    标签: javascript underscore.js lodash


    【解决方案1】:

    您的开始值和停止值颠倒了。

    console.log(_.range(3, -1, -1));
    # [ 3, 2, 1, 0 ]
    

    或者,您可以使用可链接的reverse 函数和range,像这样

    console.log(_.range(0, 4).reverse());
    # [ 3, 2, 1, 0 ]
    

    注意:它们都不类似于 Python 3.x 的 range 函数。

    【讨论】:

    • 是的,我知道开始和结束颠倒了,因为文档中有一个步骤-1的示例,它有效。但是,我想要 python 的行为,因为它仍然可以工作,即使它可以保证是低还是高。
    • @bsr 然后你可以在答案中使用第二种方法。但请记住,在 Python 中,reversed 会给出一个迭代器。
    【解决方案2】:

    从 Lodash 4.0.0 开始,有一个 rangeRight 方法可以按降序填充值。

    _.rangeRight(1, 5);
    // => [4, 3, 2, 1]
    

    【讨论】:

      【解决方案3】:

      应该是这样的

      _.range(3,-1,-1)
      _.range(3,2,-1) 
      

      或者reverse:

      console.log(_.range(3,4).reverse())
      console.log(_.range(0,4).reverse())
      

      【讨论】:

        【解决方案4】:

        如果您需要一个反向列表,第一个参数需要是较大的数字。这有效:

        console.log(_.range(4,0,-1); // [4, 3, 2, 1]
        

        【讨论】:

          猜你喜欢
          • 2023-03-30
          • 2022-01-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多