Я понимаю что вывод не правильный чего

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

let a9 = {
  "b": 17,
  "e": 22,
  "j": 17,
  "k": 22,
  "d": 54
};

function f9() {
  let inputKey = document.querySelector('.i-9').value;
  const output = document.querySelector('.out-9');
  for (let key in a9) {
    console.log(a9[key]);
    if (a9[key] == inputKey) {
      output.innerHTML += key;
      console.log(key);

    } else {
      output.innerHTML = '';
    }
  }
}
document.querySelector('.b-9').onclick = f9;
<div class="form-control">
  Input i-9 <input type="text" class="i-9" />
</div>
<button class="button-primary b-9">Task-9</button>
<div class="out-9"></div>


Ответы (2 шт):

Автор решения: De.Minov

Подробнее в комментариях к коду

let a9 = {"b": 17, "e": 22, "j": 17, "k": 22, "d": 54};

function f9() {
  const value = document.querySelector('input.i-9').value,
        out = document.querySelector('.out-9');
        
  if(value.length !== 0) { // Если value не пустой
    let keys = []; // Тут будем собирать совпадения ключей
    for(let key in a9) { // Проходим циклом по a9, получая ключ в ппеременную key
      if(a9[key] == value) keys.push(key); // Если key равен value, то добавляем его в массив keys
    }
    
    if(keys.length > 0) // Если массив keys не пустой
      out.innerHTML = keys.join(' '); // то выводим в out при помощи .join(), через пробел
    else
      out.innerHTML = 'Нет совпадений' // Иначе пишем в out, что совпадений нет
  } else out.innerHTML = 'Введите значение в инпут'
}
document.querySelector('.b-9').onclick = f9;
<div class="form-control">
  Input i-9 <input type="text" class="i-9" />
</div>
<button class="button-primary b-9">Task-9</button>
<div class="out-9"></div>

→ Ссылка
Автор решения: kostik-rak

Более компактно, заводим сразу пустую строку и складываем в нее ключи проходя цикл for..in, а в конце добавляем эту строку, если совпадений не было то строка по умолчанию пустая

let a9 = {
  b: 17,
  e: 22,
  j: 17,
  k: 22,
  d: 54,
};

function f9() {
  let value = document.querySelector('.i-9').value;
  let out = document.querySelector('.out-9');
  let str = '';
  for (let key in a9) {
    if (a9[key] == value) str += key + ' '; 
  }
  out.innerHTML = str;
}

document.querySelector('.b-9').onclick = f9;
 <div class="form-control">Input i-9 <input type="text" class="i-9"></div>
            <button class="button-primary b-9">Task-9</button>
            <div class="out-9"></div>

→ Ссылка