Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

120
Visualizações
Is it possible to use `if … in` to search through an object without it being case-sensitive?

If I want to get a value from the object know but the case is different, it won’t match: "Hello" won’t match "hello". Is there another work around for this?

function ct(e) {
  var know = {
    "Hi": "Hello",
    "How are you?": "Great",
    "Bye": "Have A Nice Day !",
    "Hello": "Hi , Whats Up",
    "What's your name?": "Claire Rachael"
  };
  let t = document.createElement("span");
  
  t.setAttribute("class", "chatMessage left");
  
  if (e in know) {
    setTimeout(() => {
      t.textContent = "Typing...";
      d.appendChild(t);
      g = d.getAttribute("data-bottom")
        ? d.getAttribute("data-bottom")
        : 0;
      
      if (parseInt(g) < 200)
        d.scrollTo(0, d.scrollHeight);
    }, 2000);
    setTimeout(() => {
      t.textContent = know[e];
      d.appendChild(t);
      g = d.getAttribute("data-bottom")
        ? d.getAttribute("data-bottom")
        : 0;
      
      if (parseInt(g) < 200)
        d.scrollTo(0, d.scrollHeight);
      else
        alert("new message");
    }, 6000)
  }
  else {
    t.textContent = "I don't understand";
    d.appendChild(t);
  }
}
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

You can't do that with in, no.

You can create a map of the properties keyed by their name in lower case, then look in that map using only lower-case values:

const knowMap = new Map(Object.entries(know).map(([key, value]) => [key.toLowerCase(), value]));
const elower = e.toLowerCase();
// ...
if (knowMap.has(elower)) {
    // ...you can use `knowMap.get(elower)` here to get the value...
    // ...e.g.: `t.textContent = knowMap.get(elower);`
}

Live Example:

var know = {
    "Hi": "Hello",
    "How are you?": "Great",
    "Bye": "Have A Nice Day !",
    "Hello": "Hi , Whats Up",
    "What's your name?": "Claire Rachael"
};

const knowMap = new Map(Object.entries(know).map(([key, value]) => [key.toLowerCase(), value]));
// ...
function test(key) {
    const keylower = key.toLowerCase();
    if (knowMap.has(keylower)) {
        const value = knowMap.get(keylower);
        console.log(`value for "${key}" is "${value}"`);
    } else {
        console.log(`No match for key "${key}"`);
    }
}
test("Hi");
test("HI");
test("hi");

If you know that none of your properties has the value undefined, you can avoid going to the map twice:

const value = knowMap.get(elower);
if (value !== undefined) {
    // ...use `value` here...
}

Live Example:

var know = {
    "Hi": "Hello",
    "How are you?": "Great",
    "Bye": "Have A Nice Day !",
    "Hello": "Hi , Whats Up",
    "What's your name?": "Claire Rachael"
};

const knowMap = new Map(Object.entries(know).map(([key, value]) => [key.toLowerCase(), value]));
// ...
function test(key) {
    const value = knowMap.get(key.toLowerCase());
    if (value !== undefined) {
        console.log(`value for "${key}" is "${value}"`);
    } else {
        console.log(`No match for key "${key}"`);
    }
}
test("Hi");
test("HI");
test("hi");

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda