При использовании для каждого я получаю сообщение об ошибке "unhandledRejection: TypeError: data.forEach не является функцией"

Решение, которое я пробовал. Я преобразовал данные в формат JSON перед использованием для каждого

const data = JSON.parse(message);

Я зарегистрировал сообщение JSON, и ниже приведено сообщение:

{
  '0': {
    'Id': 4680,
    ’Flgtrue ?': 'Yes',
    'Type': ‘rrrr’,
    RN: '56971',
    'Name': ‘TSN’’s Percussive Arts Centre.Inc’,
    'Start Date': '2022-01-01',
    'End Date': '2023-08-02',
  },
‘1’: {
    'Id': 4681,
    ’Flgtrue ?': ‘No’,
    'Type': ‘rrsrr’,
    RN: '56975’,
    'Name': ‘TSN’’s Percussive Arts Centre.Incffff’,
    'Start Date': '2022-01-01',
    'End Date': '2023-08-02',
  },
  letter_path: ‘Test/File/2050_Sample.pdf'
}

Любая помощь приветствуется

Заранее спасибо

0
T S Nandakumar 30 Май 2023 в 20:53
2
data не является массивом. «Обычные» объекты не имеют метода forEach.
 – 
InSync
30 Май 2023 в 20:56
Есть ли способ, которым я могу использовать для цикла образец сообщения, которое я предоставил.
 – 
T S Nandakumar
30 Май 2023 в 20:59
У вас есть объект, а не массив. forEach для массивов. Вы должны выполнить итерацию через Object.keys.
 – 
Scott Marcus
30 Май 2023 в 20:59
1
 – 
InSync
30 Май 2023 в 21:00
Этот принятый ответ в этом посте использует очень старую технику, и, хотя она будет работать, for/in на самом деле не лучший подход. Вместо этого должно быть Object.keys. Ниже принятый ответ показывает это.
 – 
Scott Marcus
30 Май 2023 в 21:00

1 ответ

Лучший ответ

Ваш код содержит типографские кавычки. Они недействительны в JavaScript. Кроме того, как упоминалось ранее, вам нужно превратить объект data в какую-то итерируемую структуру, например массив. Один из способов сделать это — использовать Object.values(data):

const data = {
  '0': {
    'Id': 4680,
    'Flgtrue ? ': 'Yes',
    'Type' : 'rrrr',
    RN: '56971',
    'Name': 'TSN\'s Percussive Arts Centre.Inc',
    'Start Date': '2022-01-01',
    'End Date': '2023-08-02',
  },
  '1': {
    'Id': 4681,
    'Flgtrue ?': 'No',
    'Type': 'rrsrr',
    RN: '56975',
    'Name': 'TSN\'s Percussive Arts Centre.Incffff',
    'Start Date': '2022-01-01',
    'End Date': '2023-08-02',
  },
  letter_path: 'Test/File/2050_Sample.pdf'
}

Object.values(data).forEach(el=>console.log(el.RN||el))
0
Carsten Massmann 30 Май 2023 в 21:00
вам нужно превратить объект данных в какую-то итерируемую структуру, например массив <-- Объект уже является итерируемой структурой. Итерация по нему с помощью Object.keys() является наиболее прямым подходом.
 – 
Scott Marcus
30 Май 2023 в 21:03
Спасибо @Carsten Massmann, это сработало, пометка как ответ - Спасибо!
 – 
T S Nandakumar
30 Май 2023 в 21:13