可変長のN個のJavaScript配列の値のすべてをどのようにして生成できますか?JavaScript配列の値のすべての組み合わせを見つける
たとえば、N個のJavaScript配列があるとします。
aef
aeg
aeh
aei
aej
bef
beg
....
dej
を生成する
var first = ['a', 'b', 'c', 'd'];
var second = ['e'];
var third = ['f', 'g', 'h', 'i', 'j'];
(この例では3つの配列が、問題のための配列のそのN数。)
そして私は、出力したいそれらの値のすべての組み合わせ、
EDIT:ここで私が働いているバージョンは、ffriendの受け入れられた答えを基にしています。
var allArrays = [['a', 'b'], ['c', 'z'], ['d', 'e', 'f']];
function allPossibleCases(arr) {
if (arr.length === 0) {
return [];
}
else if (arr.length ===1){
return arr[0];
}
else {
var result = [];
var allCasesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of array
for (var c in allCasesOfRest) {
for (var i = 0; i < arr[0].length; i++) {
result.push(arr[0][i] + allCasesOfRest[c]);
}
}
return result;
}
}
var r=allPossibleCases(allArrays);
//outputs ["acd", "bcd", "azd", "bzd", "ace", "bce", "aze", "bze", "acf", "bcf", "azf", "bzf"]
いいえ。私はOptimizelyにとって多変量をシミュレートするツールを構築しており、これは問題ではないことを認識し、JavaScriptの例を見つけることができませんでした。しかし、私はばかみたいに感じるようにしてくれてありがとう:) – Yahel
私はこれが少し不公平だと思います。 'first | second | third'に基づいて出力値を表示しました。ここでは、それぞれから値が取られます。 'eaf'は容認できない価値ですか?それとも、実際には文字列が異なる配列からなる 'N'長さの文字列がほしいということですか? –
この限りでは、 'eaf == aef'です。順序は関係ありません。だから、はい、私は文字列の配列を生成したい、各値はNの長さの文字列であり、各文字は異なる配列からです。 – Yahel