我试图在将每个对象推送到数组之前过滤掉重复的对象。
function collaborators() {
var api = '/docs/' + doc_id + '/json';
$.getJSON(api, {format: "json"} ).done(function(data) {
var collaborators = [];
for (var i = 0; i < data.notes.length; i++) {
if ( data.notes[i].author === data.notes[i+1].author) {
console.log('dup found')
console.log(data.notes[i].author)
} else {
collaborators.push(data.notes[i].author);
}
}
});
}
控制台显示“Uncaught TypeError:无法读取未定义的属性'作者'”。但是我看到console.log(data.notes[i].author)
中的重复条目,但数组为空。需要纠正的是什么?
答案 0 :(得分:0)
在循环的最后一次迭代中,没有i+1
:
data.notes[i+1]
由于未定义,因此在其上调用.author
会爆炸。如错误所示,data.notes[i+1]
未定义,因此author
没有属性undefined
。