私は、多くの新聞に見られる古典的な "混乱した単語"パズルを解決するプロジェクトに取り組んでいます。このプロジェクトの基本的な考え方は、スクランブルされた単語(空白や特殊文字は使用できません)を受け取り、単語のすべての順列を生成し、教授によって提供された「辞書」に対して各順列をチェックし、次に実際には英語単語を配列に追加し、さらに処理して結果を出力します。JavaScript TypeError:プロパティ 'eat'を読み取ることができません。未定義
現在、私は、置換が「辞書」にあるかどうかを調べようとするときに問題が発生しています。以下のコードは私の教授によって提供され、外部テキストファイルから "辞書"を作成します。彼によると、辞書[w]は、単語の頻度を表す単語と対になった数字を返すべきです。単語が辞書にない場合は、「未定義」です。
function readDictionary() {
/**
* @type {string[]}
*/
const lines = fs.readFileSync("count_1w.txt", "utf-8").split("\n");
var line;
const dictionary = {};
for (line of lines) {
line = line.trim();
let array = line.split('\t');
if (array.length > 1) {
let word = array[0];
let count = array[1];
if (lexicon[word]) {
dictionary[word] = parseFloat(count);
}
}
}
return Object.freeze(dictionary);
}
function getDictionary() {
if (dictionary === null) {
dictionary = readDictionary();
}
return dictionary;
}
var dictionary = getDictionary();
辞書[文字]が未定義でない場合は、私が書いた次のコードは...
function inDict(letters) {
if (dictionary[letters] !== undefined){
return true;
}
else{
return false;
}
}
を「真」を返す必要があります...しかし、現在の状態で、それはで例外TypeErrorこの投稿のタイトルは、 'eat'が生成された入力の最初の順列です。私の実際のコードでは、readDictionary()、getDictionary()、およびvar dictionary = getDictionaryはすべてinDict()の上で宣言されています。
さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。 JavaScriptの個人的な知識の終わりに達しました。複数のGoogle検索では、私の特定のインスタンスで役に立たなかったものは何も見つかりませんでした。どんな提案や意見も大歓迎です!
typeof variable!= 'undefined' – Laurianti
または単に「辞書の中の文字を返す」 – adeneo