0

我试图在将每个对象推送到数组之前过滤掉重复的对象。

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);
      }
    }
  });
}

控制台显示“未捕获的类型错误:无法读取未定义的属性‘作者’”。但是我在 中看到重复的条目console.log(data.notes[i].author),但数组为空。需要纠正什么?

4

1 回答 1

0

在循环的最后一次迭代中,没有i+1

data.notes[i+1]

由于这是未定义的,因此调用.author它会爆炸。如错误所示,data.notes[i+1]未定义,因此没有 的属性authorundefined

于 2013-05-02T17:30:04.533 回答