#javascript #reactjs #ecmascript-6
#javascript #reactjs #ecmascript-6
Вопрос:
у меня ниже структура объекта, как на изображении ниже, и я пытаюсь сопоставить внутреннее свойство объекта (например, идентификатор типа массирования) с существующим идентификатором, и если оно совпадает, мне нужно получить имя этого объекта и поместить его в массив и установить этот массив в состояние object,
и код выглядит так, как показано ниже
Object.values(constructionSets).forEach(item => {
console.log(item);
const constructionSetItem = [];
if (
item.ashraeClimateZone?.id === ashraeClimateZoneId amp;amp;
item.massingType?.id === massingTypeId amp;amp;
item.sourceOfData?.id === energyCodeId
) {
setConstruction(constructionSetItem.push(item.name));
}
});
и когда я регистрируюсь item
, я получаю массив объектов вместо одного объекта, не мог бы кто-нибудь сообщить мне, где я ошибаюсь в приведенном выше коде?
заранее спасибо.
Комментарии:
1. Можете ли вы опубликовать
constructionSets
переданное значение.values()
?2.
constructionSets
появляется уже массив, поэтомуObject.values(constructionSets)
должен вернуться идентичный массив иconsole.log(item);
журнал is каждого объекта.3. @mmason33 это просто массив из 4
Ответ №1:
Из того, что я вижу в предоставленной вами информации, эта constructionSets
переменная уже является массивом, поэтому для ее зацикливания вам просто нужно сделать:
constructionSets.forEach(item => {...})