我有一个存储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>