Explicado de Verificador de palavras
Objetivo deste desafio: Encontre as informações-chave em um problema de palavras e resolva o problema usando um código.
Tutorial de solução: Bhaj quer uma função que verifique se uma palavra pode caber como uma resposta de palavras cruzadas.
Esta função pegará uma palavra, por exemplo 'cat'
, e um espaço, por exemplo '-a-'
, e retornará true
se a palavra couber dentro do espaço, e false
se não couber . .
Primeiro, sabemos que se a palavra e o espaço tiverem comprimentos diferentes, a palavra não caberá. Portanto, adicione uma if statement que compare os comprimentos e retorne false
se eles não forem iguais. Isso cuidará de palavras que são muito longas ou muito curtas.
Em seguida, precisamos verificar as palavras para o comprimento correto. Adicione um laço for clássico para iterar pelo espaço.
Dentro do loop for, adicione uma if statement. Esta if statement deve verificar 2 coisas. Primeiro, precisamos verificar se há caracteres no espaço diferentes de '-'
.
Segundo, devemos verificar se os caracteres que não são '-'
não são iguais ao caractere na mesma posição na palavra.
Isso parecerá assim:
for (let i = 0; i < space.length; i++) {
if (space[i] !== '-' && space[i] !== word[i]) {
return false;
}
}
Finalmente, no final da função, return true
. A função só executará esta linha de código se o laço for terminar de iterar sem retornar false
antes.
Solução de código de amostra:
import { randomWord } from 'cross.words';
function check(space, word) {
if (space.length !== word.length) {
return false;
}
for (let i = 0; i < space.length; i++) {
if (space[i] !== '-' && space[i] !== word[i]) {
return false;
}
}
return true;
}
console.log('-a-t');
console.log(randomWord);
console.log(check('-a-t', randomWord));
Conceitos JavaScript: funções, if statements, laço for, strings, notação de colchetes, indexação, comando de retorno
Código adicional (código oculto que é executado antes do código do desafio):
const _words = ['bait','cart','cast','daft','dart','east','fact','fast','gait','gast','halt','last','malt','mast','pact','pant','part','past','raft','rant','salt','tact','tart','vast','waft','wait','want','wart','watt','cats','bats','rats','bate','bath','bats','cats','data','date','eats','fate','fats','gate','hats','late','mate','math','oath','oats','rate','rats','baits','darts','attach','attack','attain','strata','tartan','tartar','tatars','aeronautics','alterations','astronautic','automations','devastation','evacuations','evaluations','salutations','situational','accusation','aeronautic','agitations','alteration','automating','automation','gelatinous','hesitation','infatuated','passionate','poinsettia','quotations','restaurant','valuations','adult','basil','bones','doses','early','heads'];
defineModule(
'cross.words',
{
randomSpace: pickRandom(_words).split('').map(i=>pickRandom([i,'-'])).join(''),
randomWord: pickRandom(_words)
}
);