@stavbers

Как проверить содержит обьект значения введенные пользователем?

есть вот такая задача
// Добавьте input .i-9. При нажатии b-9 выполняете функцию f9. Функция должна вывести в out-9 все ключи массива a9, которые содержат значение, равное значению в input.i-9. Вывод через пробел. Если значений - нет то выводить пустую строку.

Почему не работает innerHTML в последнем if?

let a9 = {
    "b": 17,
    "e": 22,
    "j": 17,
    "j1": 17,
    "j2": 17,
    "k": 22,
    "j3": 17,
    "d": 54
};
function f9() {
    let i9 = document.querySelector('.i-9').value;
    let out9 = document.querySelector('.out-9');
    let out = '';
    let count = 0;
    for(let prop in a9) {
        if( i9 == a9[prop]){
            out += prop + ' ';
        } 
        else if (i9 !== a9[prop]) { 
            count++;
        }
        else {
            return false
        }
    }
    if(count > 7){
        out9.innerHTML = ' ';
        //document.querySelector('.b-9').innerHTML = '1111';
    }
    out9.innerHTML = out;
}
document.querySelector('.b-9').onclick = f9;
  • Вопрос задан
  • 679 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Alaska14
function f9() {
    let inp9 = document.querySelector('.i-9').value;
    let out9 = '';
    for (let key in a9) {
        if (inp9 == a9[key]) {
            out9 += key + ' ';
        }
    }
    document.querySelector('.out-9').innerHTML = out9;
}

document.querySelector('.b-9').onclick = f9;

У вас изначально задаётся пустое значение для соединения совпадений. Оно и выведется если не найдется совпадений. Поэтому других проверок кроме первой - не нужно.
Ответ написан
Комментировать
@toffuffee
let a1 = {
"b": 17,
"e": 22,
"j": 17,
"j1": 17,
"j2": 17,
"k": 22,
"j3": 17,
"d": 54
};

function f() {
let znach = document.querySelector(".i").value;
for (let keys in a1) {
if (a1[keys] == znach) {
document.querySelector(".out").innerHTML += keys + " ";
}
if (a1[keys] != znach) {
document.querySelector(".out").innerHTML += " ";
}
}
}

document.querySelector(".b").onclick = f;

Нарушена логика условий if/else
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект