与えられた単語リストmainList
と照合して、指定された単語のアナグラムである単語を設定して別の単語に追加したいという指定のword
がありますリスト、subList
。アナグラムを一致させて配列にプッシュ
これを行う方法が気に入っていますが、予期しない結果が返ってきます。例えば
...
var word = 'master';
var mainList = ['stream', 'pidgeon', 'maters'];
var subList = [];
は、それから私は、言葉、文字の配列に分割し、alphabetiseを取り、文字列に戻って参加します。この文字列で、私は可能なアナグラム(これは私が同じ方法で秘密にする)と対戦することができます。
var mainSorted = [];
for (i = 0; i < word.length; i++) {
mainSorted = word.split('').sort().join();
}
これは間違っています。私はmainList
配列をループして、与えられたアイテムが変換されて元のものと一致するかどうかを確かめようとします。もしそうなら、push
という単語をsubList
という配列に書きたいと思う。
for (var i = 0; i < mainList.length; i++) {
var subSorted = mainList[i].split('').sort().join;
if (mainSorted === subSorted) {
subList.push(mainList[i])
}
}
return subList;
...と私はのsubListのために見ることを期待値は次のとおりです。['stream', 'maters']
しかし、私が代わりに空の配列を返しています。
私はこれを何度も経験しましたが、何がうまくいかないのか分かりませんが、本当に助けに感謝します。
また、私はこれを行うためのより説得力のある方法があることを知っています(そして、私は何か提案を歓迎します)が、主に私はこれが間違っているのを見たいと思っています。
ありがとうございます。あなたが参加
var subSorted = mainList[i].split('').sort().join;
の末尾に()を忘れてしまった
をやっているやって整然と方法です私の頭をレンガの壁に打ち負かすと、それはすべて問題だった。 HA。ありがとう!! :) – Paulos3000
なぜ、私が 'mainSorted'のループを作ったのかよくわかりません。 'filter()'については、実際にはまだ使用していませんが、より良い選択肢のように見えます。 – Paulos3000