Я согласен с ответом от zacherates.
Но вы можете сделать вызов intern () в ваших нелиберальных строках.
Из примера zacherates:
// ... but they are not the same object
new String("test") == "test" ==> false
Если вы ставите нелитеральное равенство строки, это правда
new String("test").intern() == "test" ==> true
Прежде всего, я думаю, что ваш набор данных неправильно структурирован. Вы не можете смешивать данные парка с данными вида. Это основная причина того, что у вас возникла эта проблема. Также проверьте способ доступа к элементам, это можно сделать намного проще, чем с помощью цикла for. В любом случае, давайте оставим это в стороне, я прыгну, чтобы попытаться решить последнюю недостающую часть проблемы.
Предполагая, что у вас есть название парка (ов), который соответствует критериям, вы можете просто найти в массиве объектов его имя и вернуть его координаты:
function getParkLocationByName(parkName) {
let {latitude, longitude} = data.find(park => park.park_name === parkName);
return {latitude, longitude};
}
let coords = getParkLocationByName('Acadia National Park');
console.log(coords)
Обратите внимание, что «данные» в этом фрагменте кода ваш оригинальный JSON.