0

私はこのような構造を持っています:

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

次のような配列になるにはどうすればよいでしょうか。

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

したがって、一意のエントリを削除するだけでなく、重複するエントリを 1 つだけ残します。

私はこれまでこれを持っていますが、良くありません!

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 に答える