(2013年6月修正)
jQueryのunique()は、文字列には使えないようだ。
Description: Sorts an array of DOM elements, in place, with the duplicates removed. Note that this only works on arrays of DOM elements, not strings or numbers.
ということで、自前で作成する。
エラーチェックなどを除いたシンプルなコードは以下のイメージ。(xuarray.js)
// JavaScript
// オブジェクトの配列からプロパティ名を指定して重複を除く
function xua_uniqueObjectArray(objArray, propName){
var storage = {};
var uniqueObjArray = [];
var i, value;
for (i = 0; i < objArray.length; i++) {
value = objArray[i][propName];
if (!(value in storage)) {
storage[value] = true;
uniqueObjArray.push(objArray[i]);
}
}
return uniqueObjArray;
}
// 単純な配列から重複を除く
function xua_unique(orgArray){
var storage = {};
var uniqueArray = [];
var i, value;
for (i = 0; i < orgArray.length; i++) {
value = orgArray[i];
if (!(value in storage)) {
storage[value] = true;
uniqueArray.push(value);
}
}
return uniqueArray;
}
—–
配列から重複した要素を取り除くには、jQueryのunique()を使うと簡単だ。(JavaScriptには同じことをダイレクトに実現するメソッドはないようで、少々コードを書く必要がある。)
// JavaScript // 元の配列 rideDates_ = ['2013/01/01', '2013/01/01', '2013/01/02', '2013/01/02']; // 重複を除く rideDates = $.unique(rideDates_); // 結果 // rideDate = ['2013/01/01', '2013/01/02'];