从多维数组中获取不同的n元组

时间:2018-02-21 00:40:36

标签: javascript algorithm

我有一个存储N组的多维数组,如下所示。从每个组中我需要获得一个独特的N元组,如示例所示。我可能事先并不知道小组的人数。

我开始创建嵌套的for循环(打算将它添加到Set以避免重复)但不知何故我在这个上画了一个空白。是否有可扩展的算法,或者我可以在这里使用的JS套件? JS是否允许您使用自己的equals()实现自定义对象集,如Java?

我需要在JavaScript中解决这个问题,但理论上这是一个算法问题。

var array = [
              [
                ["abc", "def"],
                ["123", "456", "789"],
                ["-", "--"]
              ],
              
              [
                ["X"], 
                ["0", "1", "2"]
              ]
            ];
            
 /* Expected result after processing:
 
    ["abc", "123", "-"],
    ["abc", "123", "--"],
    ["abc", "456", "-"],
    ["abc", "456", "--"],
    ["abc", "789", "-"],
    ["abc", "789", "--"],
    ["def", "123", "-"],
    ["def", "123", "--"],
    ["def", "456", "-"],
    ["def", "456", "--"],
    ["def", "789", "-"],
    ["def", "789", "--"],
    // Next element
    ["X", "0"],
    ["X", "1"],
    ["X", "2"]
*/

for (var i = 0; i < array.length; i++) {
  for (var j = 0; j < array[i].length; j++) {
    for (var k = 0; k < array[i][j].length; k++) {  // May not exist
       // ??
    }
  }
}

console.log(array);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0 个答案:

没有答案