0

我有这样的结构:

var arr = [
    {
        title: 'anchorman'
    },
    {
        title: 'happy gilmore'
    },
    {
        title: 'anchorman'
    }
]

现在我要怎么做才能得到这样的数组:

var arr = [
        {
            title: 'anchorman'
        }
]

因此,它不仅会删除唯一的条目,还会留下一个重复的条目。

到目前为止我有这个,但它并不好!

var ref;
      for(var i in movies) {
        ref = movies[i].title;
        if(this.titles.indexOf(ref) == -1) {
            movies.splice(i, 1);
        } else {
            this.titles.push(ref);  
        }
      }

其中 'movies' 是这个问题中的第一个数组,而 this.titles 只是一个空数组。

4

1 回答 1

0

以下代码将创建具有所需结果的新数组:jsfiddle

    var arr = [
    {
        title: 'anchorman'
    },
    {
        title: 'happy gilmore'
    },
    {
        title: 'anchorman'
    }
];

var temp = {}, newArr = [];
for(var k =0;k< arr.length; k++){
    if(temp[arr[k].title]){
        newArr.push(arr[k]);
    }

temp[arr[k].title] = true;
}
arr = newArr;
//console.log(newArr);​
于 2012-10-04T19:30:45.307 回答