有没有办法从Javascript中的地图的包含块返回? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在尝试实现一个函数,它检查一个单词中是否存在字母列表。

function wordHasLatters(word,letters){
    let wordChars={};
    word.split("").map(c=>wordChars[c]=true);
    let ok=true;
    letters.split("").map(l=>ok=ok&&(wordChars[l]!=undefined));
    return ok;
}

使用地图都比较优雅。困扰我的是,如果我发现没有信件,我就无法从第二张地图返回。所以我必须使用一个变量并返回它。这是代码中的两个额外行。

有没有办法优化这段代码?

javascript return
1个回答
2
投票
 const wordHasLetters = (word,letters) => letters.every(letter => word.includes(letter));

或使用普通的旧循环:

 function wordHasLetters(word, letters){
   const hash = {};
   for(var char of word)
     hash[char] = true;
   for(var letter of letters)
     if(!hash[letter]) return false;
   return true;
 }

或者使用Set:

 function wordHasLetters(word, letters){
   const set = new Set(letters);
   for(var char of word){
     set.delete(char);
     if(!set.size) return true;
   }
   return false;
 }
© www.soinside.com 2019 - 2024. All rights reserved.