SYNCERのロゴ
アイキャッチ画像

配列の重複する要素を削除する方法

JavaScriptで、PHPのarray_unique()のように配列の重複した要素を削除するには、indexOf()とfilter()を利用しましょう。

サンプルコード

下記関数は、受け取った配列の、自身のインデックス番号がindexOf()の結果と一致しない要素を除外します。重複する場合は一番左側にある要素が残されます。

function arrayUnique ( array ) {
	return array.filter( function( value, index ) {
		return index === array.indexOf( value ) ;
	} ) ;
}

重複する場合に一番右側にある要素を残したい場合は、indexOf()ではなく、lastIndexOf()を利用しましょう。

function arrayUnique ( array ) {
	return array.filter( function( value, index ) {
		return index === array.lastIndexOf( value ) ;
	} ) ;
}

デモ

配列の重複した要素が削除されているのを確認しましょう。

function arrayUnique( array ) {
	return array.filter( function( value, index ) {
		return index === array.indexOf( value ) ;
	} ) ;
}

var a = arrayUnique( [ "a", "b", "c", "d", "a", "c", "e" ] ) ;

a =

lastIndexOf()を利用すると、重複した場合に末尾側の要素が残されます。同じ配列を引数にしていますが、結果が違いますね。

function arrayUnique( array ) {
	return array.filter( function( value, index ) {
		return index === array.lastIndexOf( value ) ;
	} ) ;
}

var a = arrayUnique( [ "a", "b", "c", "d", "a", "c", "e" ] ) ;

a =

  • Twitterでシェア
  • Facebookでシェア
  • Google+でシェア
  • はてなブックマークでシェア
  • pocketに保存
  • LINEでシェア
更新履歴
2017年9月14日 (木)
コンテンツを公開しました。