Объекту не присваиваются ключи

Рейтинг: 0Ответов: 1Опубликовано: 14.06.2023

Есть код

let obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
let newObj = {}

for (let elem in obj) {
    if (elem%2==0) {
        newObj.elem = elem
    }
}

console.log(newObj)

По задумке, он должен найти четные числа в obj, и присвоить их newObj. Но newObj остается пустым

Ответы

▲ 1

По задумке, он должен найти четные числа в obj, и присвоить их newObj

Для проверки своей "задумки" нужно вывести значения ключевых переменных и сразу многое прояснится. ;)

Вангую что ТС такое хотел получить в итоге...

let obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
let newObj = {}

for (let k in obj) {
  if (obj[k] %2 == 0) {
    newObj[k] = obj[k]
  }
}

console.log(newObj)

Альтернативный вариант...

const obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
const o = Object.fromEntries(
  Object.entries(obj).filter(a => a[1] % 2 === 0)
)
console.log(o)