저는 많은 신문에 나오는 고전적인 "뒤죽박죽 단어"문제를 해결하는 프로젝트를 진행하고 있습니다. 프로젝트의 기본 아이디어는 스크램블 된 단어 (공백이나 특수 문자가 없음)를 받아들이고 단어의 모든 순열을 생성하고 교수가 제공 한 "사전"에 대해 각 순열을 검사 한 다음 실제로는 영어 인 각 순열을 추가한다는 것입니다 단어를 배열로 변환 한 다음 결과를 산출합니다.JavaScript TypeError : 'eat'속성을 읽을 수 없습니다. 정의되지 않음
현재 순열이 "사전"에 있는지 확인하려고 할 때 문제가 발생합니다. 아래 코드는 내 교수가 제공했으며 외부 텍스트 파일에서 "사전"을 만듭니다. 그 사람에 따르면, dictionary [w]는 단어의 빈도를 나타내는 단어와 쌍을 이루는 숫자를 반환해야하며, 단어가 사전에 없으면 "undefined"를 반환해야합니다. 나는 사전 [문자] 정의되지 않은 경우 "true"를 반환해야합니다 작성한
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;
}
}
는 ... 그러나 현재 상태에서 그것은 형식 오류에 던졌습니다 이 게시물의 제목은 '먹는 것'이 생성 된 입력의 첫 번째 순열 인 것입니다. 실제 코드 인 readDictionary(), getDictionary() 및 var dictionary = getDictionary는 모두 inDict() 위에 선언되어 있습니다.
자세한 내용이 필요하면 언제든지 문의하십시오. 자바 스크립트에 대한 개인적인 지식이 끝났으며 여러 가지 Google 검색을 통해 내 특별한 경우에는 도움이되지 않았습니다. 어떤 제안이나 의견이라도 대단히 감사합니다!
variable!= '정의되지 않음' – Laurianti
또는 그냥 '사전에있는 문자 반환' – adeneo