Я пытаюсь создать карту горячих точек COVID в США. Массив объектов, который я получаю от API, не включает позиционирование широты и долготы, поэтому я создал свой собственный массив для передачи этих значений в возвращаемый массив с помощью оператора .then. Проблема, с которой я сталкиваюсь, заключается в том, что созданный мной массив не позволяет мне запускать на нем функцию .forEach и помещать значения в новый (третий) массив. Ниже мой код и небольшой образец каждого из массивов. Я получил информацию о широте / долготе отсюда https://inkplant.com/code/us-state-mysql-table.
Мой массив:
let StateLatLng = [
{state: "Alabama", lat: 32.806671, lng: -86.791130},
{state: "Alaska", lat: 61.370716, lng: -152.404419},
{state: "Arizona", lat: 33.729759, lng: -111.431221},
{state: "Arkansas", lat: 34.969704, lng: -92.373123},
etc... ]
Массив, возвращенный из API:
0: Object { state: "California", updated: 1603065757213, cases: 875557, … }
1: Object { state: "Texas", updated: 1603065757213, cases: 870156, … }
2: Object { state: "Florida", updated: 1603065757213, cases: 755020, … }
3: Object { state: "New York", updated: 1603065757213, cases: 519994, … }
Мой код:
.then((result) => {
let data = new Set(result.map((item) => item.state));
StateLatLng.forEach((item) data.has(item.state) && (item.lat = test);
console.log(data);
})
Я пытаюсь использовать общее имя состояния для обоих массивов, чтобы найти соответствующий объект, а затем поместить данные в новый массив с именем data для последующего использования. Поскольку я создал первый массив, я не уверен, следует ли мне отформатировать его по-другому, чтобы упростить работу, или мне следует использовать таблицу MySQL, связанную с URL-адресом, из которого я получил широту/долготу. Я решил не использовать таблицу SQL, потому что не знаком с этим типом данных.