Не могу понять, почему выходит такой ответ в этом цикле, скажите пожалуйста.
$('input').keypress(function() {
var obj = [{
name: "Loki",
surname: "Man"
},
{
name: "Doki",
surname: "Mon"
},
{
name: "Fuka",
surname: "Don"
}
];
var arr = obj.map((item) => {
var otvet = item.name == 'Doki' ? console.log(item.name) : '';
console.log(otvet);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input />
Потому что console.log('item') ничего не возвращает.
При выполнении условия в тернарном операторе Вы записываете в переменную otvet значение, которое возвращает вызов console.log(...);.
$('input').keypress(function() {
var obj = [
{
name: "Loki",
surname: "Man"
},
{
name: "Doki",
surname: "Mon"
},
{
name: "Fuka",
surname: "Don"
}
];
var arr = obj.map(function(item) {
if (item.name == 'Doki')
return console.log(item.name); // надо return item.name;
else
return '';
});
console.log(JSON.stringify(arr));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input />
Демонстрация того, как переменной otvet присваивается значение undefined:
function test() {
}
var otvet = true? test() : 'defined';
console.log(otvet);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости