Edit: Теперь, это понятно, что вы хотите, чтобы петля над только одного элемента, изменить количество раз для перебора - в настоящее время он будет перебирать весь массив, только перебирать одно изменение arr.length
к 1
(или однако многие элементы, которые вы хотите отобразить):
function myFunction(response) {
var arr = JSON.parse(response);
var i;
var out = "<table>";
for(i = 0; i < 1; i++) {
out += "<tr><td> " +
arr[0].offerPercentage +
"</td><td>" +
arr[0].offerName +
"</td></tr>";
}
out += "</table>";
document.getElementById("id01").innerHTML = out;
}
или вы могли бы просто сослаться на первый результат напрямую, минуя петлю, которая будет иметь больше смысла:
function myFunction(response) {
var arr = JSON.parse(response);
var i;
var out = "<table>";
// Only append if `arr` has at least one result.
if (typeof arr[0] !== 'undefined') {
out += "<tr><td> " +
arr[0].offerPercentage +
"</td><td>" +
arr[0].offerName +
"</td></tr>";
}
out += "</table>";
document.getElementById("id01").innerHTML = out;
}
Старый Ответ: Объекты в JavaScript, не имеют .length
свойство.
Для цикла по объекту, используйте for...in
синтаксис:
for (var offer in arr) {
// `offer.offerPercentage` and `offer.offerName` will be available here.
}
Если что возвращается является на самом деле массив, ваш вопрос не ваш синтаксис, это тот факт, что вы используете arr[0]
в каждый цикл, а не arr[i]
.
Пожалуйста, объясните, что вы имеете в виду. JSON - это формат файла, а не язык программирования, поэтому оператор if в JSON не имеет очевидного значения. (О, и 'arr [0]' должно быть, вероятно, 'arr [i]') –
Ваш вопрос очень неясен. Не могли бы вы добавить какой-то контекст относительно того, где вы хотите добавить оператор if, и какая именно цель? JSON - это не язык. JSON - это то, как вы представляете объекты в javascript, хотя широко используется в качестве формата хранения. Код, который вы опубликовали, выглядит как код javascript. –