次の 2 次元配列入力があります。
var arr = [
['A', ['Sun','Moon']],
['B', ['Cat','Dog']],
['C', ['John','Peter','Zora']]
];
その入力を使用して、すべての組み合わせを JavaScript の特定のパターンに適用します。
パターン内のプレースホルダーは次の形式です: $( name )
結果のサンプルパターンを次に示します。
var pattern1 = "$(A) / $(A)";
/* Expected Result
"Sun / Sun"
"Sun / Moon"
"Moon / Sun"
"Moon / Moon"
*/
var pattern2 = "$(A)--$(B)";
/* Expected Result
"Sun--Cat"
"Sun--Dog"
"Moon--Cat"
"Moon--Dog"
*/
var pattern3 = "$(C) + $(B)";
/* Expected Result
"John + Cat"
"John + Dog"
"Peter + Cat"
"Peter + Dog"
"Zora + Cat"
"Zora + Dog"
*/
var pattern4 = "$(A) - $(A) * ( $(B) + $(C) )";
/* Expected Result
"Sun - Sun * ( Cat + John )"
"Sun - Sun * ( Cat + Peter )"
"Sun - Sun * ( Cat + Zora )"
"Sun - Sun * ( Dog + John )"
"Sun - Sun * ( Dog + Peter )"
"Sun - Sun * ( Dog + Zora )"
"Sun - Moon * ( Cat + John )"
"Sun - Moon * ( Cat + Peter )"
"Sun - Moon * ( Cat + Zora )"
"Sun - Moon * ( Dog + John )"
"Sun - Moon * ( Dog + Peter )"
"Sun - Moon * ( Dog + Zora )"
"Moon - Sun * ( Cat + John )"
"Moon - Sun * ( Cat + Peter )"
"Moon - Sun * ( Cat + Zora )"
"Moon - Sun * ( Dog + John )"
"Moon - Sun * ( Dog + Peter )"
"Moon - Sun * ( Dog + Zora )"
"Moon - Moon * ( Cat + John )"
"Moon - Moon * ( Cat + Peter )"
"Moon - Moon * ( Cat + Zora )"
"Moon - Moon * ( Dog + John )"
"Moon - Moon * ( Dog + Peter )"
"Moon - Moon * ( Dog + Zora )"
*/
パターンは、任意の組み合わせ (繰り返しのプレースホルダーを使用) および任意の長さにすることができます。
誰かがJavaScriptのアルゴリズムを手伝ってくれますか?
ありがとうございました。