Почему в JS такой код 'j'==='a'||'i'||'e'||'o' возвращает символ 'i' [дубликат]

79
04 февраля 2022, 08:50
На этот вопрос уже даны ответы здесь:
&& и || с разными типами данных (3 ответа)
Закрыт 2 года назад.

только начал изучать этот язык и заметил такую странную штуку, объяснение которой я не смог найти в интернете. Собственно такой код в консоли'j'==='a'||'i'||'e'||'o' возвращает символ 'i' хотя поидее должен возвращать false. Хотя когда вторую половину кода беру в кавычки то значение возвращает правильно.

И вопрос номер два. Делал задачу на замену конкретных букв в строке на цифры. Можно ли как то по другому это реализовать, чтоб код было короче?или тот вариант который сделал я, самый правильный?

var input = "it's dangerous business frodo"; 
var output = ""; 
 
for(i=0;i<input.length;i++) { 
    if (input[i]==='a') { 
        output+='4'; 
    } else if (input[i]==='i') { 
        output+='1'; 
    } else  if (input[i]==='o') { 
        output+='0'; 
    } else if (input[i]==='e') { 
        output+='3'; 
    } else 
   output+=input[i] 
}; 
 
console.log(output);

Answer 1

var charMap = { 
  'a': '4', 
  'i': '1', 
  'o': '0', 
  'e': '3' 
}; 
 
var input = "it's dangerous business frodo"; 
var output = input.split('').map(i => charMap[i] || i).join(''); 
 
console.log(output);

READ ALSO
Как найти определённый элемент и изменить его? Jquery

Как найти определённый элемент и изменить его? Jquery

Как с помощью jquery найти нужный мне элемент в такой конструкции? У меня получается только цеплять весь класс, но мне нужен определённый элементВыглядит...

265
Как разбить строку по шаблону - JS

Как разбить строку по шаблону - JS

Никак не могу сообразить, как разбить строку на подобии boxShadow: rgba(255, 255, 255, 07) 1px 1px 10px 0px в массив

177
Как записать id html объекта в переменную в javascript?

Как записать id html объекта в переменную в javascript?

Нужно что бы при нажатии на html(<div>) объект, в переменную записывался его id!

77
TEXTAREA получение value с помощью JS

TEXTAREA получение value с помощью JS

Выводит только это (input), а textarea нет {name: "Имя Фамилия О", data: "2020-W02"}

105