попытка перебрать массив объектов и найти совпадение

#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 => {...})