JS: Как в array добавить елементи взяв иx из object?

199
14 марта 2022, 09:00

Есть object, нужено запушить его values в [], если key === 'name'.

Вот пример моего кода, который не работает.

const projects = responseJSON.response.projects;
const allNames = [];
for (let key in projects) {
     Object.keys(projects).find(key => {
        if (key === 'name') {
           allNames.push(value)
        }
     });
}

Или так :

for (let [key, value] of Object.entries(projects)) {
      if (key === 'name') {
        allNames.push(value);
      }
}

Надеюсь на вашу помощь, спасибо!

Answer 1

Вы усложняете. Объект на то и существует, чтобы обращаться по ключу. Используйте projects['name'] или projects.name

Но не помешает добавить проверку:

const key = 'name';
if(projects[key]){
    allNames.push(projects[key]);
}
Answer 2

const projects = { 
  a: {name: 'a'}, 
  b: {name: 'b'} 
} 
const values = Object.keys(projects).reduce((res, projectKey) =>  
  projectKey === 'a' ? [...res, projects[projectKey]] : res,  
[]); 
 
console.log(values);

const projects = { 
  a: { 
    name: 'a' 
  }, 
  b: { 
    name: 'b' 
  } 
} 
const allNames = []; 
 
 
 
for (let key in projects) { 
  if (key === 'a') { 
    allNames.push(projects[key]) 
  } 
} 
console.log(allNames)

Answer 3
(typeof projects['name'] != 'undefined') && allNames.push(projects['name']);

Данный код подходит для случаев, когда projects['name'] == 0 или projects['name'] == false или projects['name'] == null

READ ALSO
Странная работа select jquery

Странная работа select jquery

Есть select с id role с 12 опциямиУсловие работает странно, если выбирается опция 10,11 или 12 то alert с Значение больше 5 не выводится, хотя первый alert(s)...

112
Как запретить изменение размера окна C# UWP

Как запретить изменение размера окна C# UWP

Я использую технологию UWP(Windows UI) для создания своего приложения, как мне запретить изменение размера окна пользователем?

240
Ошибка при подключении NuGet-пакета

Ошибка при подключении NuGet-пакета

Имеется NuGet-пакетОн создавался со следующей структурой

182
Смена цвета BorderBrush у ComboBox по нажатию кнопки. C# WPF XAML

Смена цвета BorderBrush у ComboBox по нажатию кнопки. C# WPF XAML

Есть comboBox и кнопка, Если мы нажимаем на кнопку и в comboBox ничего не выбрано, SelectItem == null, то надо изменить цвет BorderBrush данного comboBox-а

183