素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: twitter: @javascripter にどうぞ。

さっきのより高速なuniq()メソッド

Arrayのuniq()を作る - 素人がプログラミングを勉強するブログのやつと、下のやつのどっちがいいかな。

Array.prototype.uniq=function()
	this.sort().reduceRight(
			function(a,b){
			a[0]===b||a.unshift(b);
			return a;
			}
			,[])

var array=[1,1,2,3,4,1,null,null,undefined,HTMLElement,'a','b',HTMLElement,'b'];

array.uniq();//[1, 2, 3, 4, HTMLElement, "a", "b", null]

一度ソートすれば隣と比較するだけでよくなる。ただし、順番はソートされたものになる。