Я использую Vanilla JavaScript для итерации объекта JSON.Некоторые свойства внутри объекта не определены, и они появляются как undefined
при заполнении страницы данными.
Это лучший способ перебора большого набора данных с использованием собственного JavaScript и что яделает неправильно, чтобы ключи, которые не определены внутри набора данных, игнорировались?
Кроме того, forEach - лучший способ или для ... in?
Сокращенная версия моего кода ниже:
/* Sample data:
[{
"bhp": 354,
"model": "a45",
"make": "mercedes"
}, {
"model": "m4",
"make": "bmw"
}]
*/
xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.myjson.com/bins/1cjhoe');
xhr.onload = function() {
var cars = JSON.parse(xhr.responseText);
if (xhr.status === 200) {
populate(cars);
} else {
console.log('Request failed. Returned status of ' + xhr.status);
}
};
xhr.send();
function populate(cars) {
var list = document.getElementById('list');
cars.forEach(function(car) {
var carDiv = document.createElement('div');
carDiv.className = 'car';
carDiv.innerHTML = '<div>' + car.make + ' </div>';
carDiv.innerHTML += '<div>' + car.model + ' </div>';
carDiv.innerHTML += '<div>' + car.bhp + ' </div>';
list.appendChild(carDiv);
});
}
.car {
margin-bottom: 30px;
}
.car div {
display: inline-block;
margin-right: 20px;
font-size: 20px;
}
<div id="list">
</div>