Необходимо исключить из цикла свойства прототипа.Структура for ... in
будет проходить через все *, которые он находит в цепочке прототипов, а не только свойства дочернего объекта.
for (var titleKey in data.d) {
if (data.d.hasOwnProperty(titleKey)) {
// own property //
}
else {
// inherited property //
}
}
Из того, что в журнале консоли говорится, что у меня есть подозрение, что у вас есть библиотека, котораяреализует indexof
для массива в своем прототипе.
Я бы рекомендовал использовать правильный способ для обхода массивов:
for (var index = 0; index < data.d.length; index++) {...}
for in
для объектов, а не массивов. Это распространенная ошибка новичка, когда кто-то злоупотребляет тем фактом, что Array является производным от Object.
*
См. Комментарий от davidchambers