【问题标题】:Convert array of 2-tuples into one nested two elements array将 2 元组数组转换为一个嵌套的两个元素数组
【发布时间】:2019-11-17 16:34:42
【问题描述】:

我正在寻找一个函数的函数式编程术语(如果存在),它将一个由几个 2 元组组成的数组转换为一个 2 元组数组。

我认为说明我的问题的最佳方式是通过一个例子。我想将array 转换为newArray

const array = [[10, "A"], [20, "B"], [30, "C"], [40, "D"]]
const newArray = [[10, 20, 30, 40], ["A", "B", "C", "D"]]

我最喜欢的语言是 javascript,我知道我可以通过使用 reduce 进行黑客攻击来做到这一点,但我想知道我是否可以在函数式编程库中找到这样的函数,例如 Ramda .

谢谢!

【问题讨论】:

    标签: javascript arrays functional-programming


    【解决方案1】:

    通常称为unzipzip 是另一个方向的操作)。

    【讨论】:

      【解决方案2】:

      在 ramda 中 transpose 可以双向工作。 你基本上想要:

      n 长度为x 的列表转换为x 长度为n 的列表。

      const initial = [[1, 'a'], [2, 'b'], [3, 'c']];
      
      const result = R.transpose(initial);
      console.log('result is', result);
      
      const data = R.transpose(result);
      console.log('data is', data);
      <script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.js" integrity="sha256-xB25ljGZ7K2VXnq087unEnoVhvTosWWtqXB4tAtZmHU=" crossorigin="anonymous"></script>

      另请看:

      1. zip

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-13
        • 2022-07-12
        • 1970-01-01
        相关资源
        最近更新 更多