Как вывести определенные элементы вложенных массивов объекта в зависимости от условия?

Функция должна в out выводить элементы name для которых age > 26.

let list = {
    "iis8sj": {
        "name": "Ivan",
        "age": 27
    },
    "iiss7j": {
        "name": "Petr",
        "age": 26
    },
    "s3s8sj": {
        "name": "Serg",
        "age": 47
    }
}

Сделал так, но выводит age (27, 47) а не name (Ivan, Serg), возможно должно быть еще второе условие чтобы выводить только строки, но не могу сообразить как поправить, подскажите пожалуйста.

function f1() {
    let out = '';
    for (let key in list) {
        for (let item in list[key]) {
            if (list[key][item] > 26) {
                out += list[key][item] + ' ';
            }
        }
    }
    document.querySelector('.out').innerHTML = out;
}

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

Автор решения: Алексей Шиманский

Второй цикл явно лишний

let list = {
    "iis8sj": { "name": "Ivan", "age": 27 },
    "iiss7j": { "name": "Petr", "age": 26 },
    "s3s8sj": { "name": "Serg", "age": 47 }
}

function f1(list, maxAge) {
    let result = [];
    for (let key in list) {
        if (list[key].age > maxAge) {
            result.push(list[key].name);  
        }        
    }
    
    return result;
}

console.log(f1(list, 26).join(' '));

→ Ссылка
Автор решения: CatWhite
      <section>
            <p><b>Task 17.</b></p>
            <p> При нажатии b-17 выполняете функцию f17. Функция должна в out-17 выводить элементы name вложенных
                массивов в a17 для который age > 26. Вывод через пробел.</p>
            <button class="button-primary b-17">Task-17</button>
            <div class="out-17"></div>
        </section>

let a17 = {
  iis8sj: {
    name: "Ivan",
    age: 27,
  },
  iiss7j: {
    name: "Petr",
    age: 26,
  },
  s3s8sj: {
    name: "Serg",
    age: 47,
  },
  s3s85j: {
    name: "Deny",
    age: 65,
  },
};

function f17() {
  let out = "";

  for (let key in a17) {
    if (a17[key].age > 26) {
      out += a17[key].age + " ";
    }
  }
  document.querySelector(".out-17").innerHTML = out;
}

document.querySelector(".b-17").onclick = f17;
→ Ссылка
Автор решения: ksa

Функция должна в out выводить элементы name для которых age > 26.

Предложу такой вариант...

let list = {
    "iis8sj": {
        "name": "Ivan",
        "age": 27
    },
    "iiss7j": {
        "name": "Petr",
        "age": 26
    },
    "s3s8sj": {
        "name": "Serg",
        "age": 47
    }
}

function f1(list) {
  const a = Object.values(list).reduce((a, o) => (o.age > 26 ? [...a, o.name] : a), [])
  return a.join(', ') 
}

document.querySelector('.out').innerHTML = f1(list)
<p class='out'></p>

→ Ссылка