???????????????????????? ??????????????£? ?????????????????? ???????????? ??????Щ????????
????????????????????????????к??????????? ???javascript?????????? ??????????磺???????????
?????????? js ??????????????????5????????????????Demo ??? ???
????1.???????鷨
???????????????? ????·???????????飬???????????飬??????????????????????У??????ж???????????????“indexOf”??ECMAScript5 ??????IE8???2????????д?Щ?????汾?????????????????£?
????// ??????????
????function unique1(array){
????var n = []; //????μ????????
????//???????????
????for(var i = 0; i < array.length; i++){
????//????????????i????????????????飬?????????
????//?????????push?????????????
????if (n.indexOf(array[i]) == -1) n.push(array[i]);
????}
????return n;
????}
????// ?ж????????????indexOf ??indexOf ?ecmaScript5?·??? IE8???£?????IE8?? IE8???????ecma5???????
????if (!Array.prototype.indexOf){
????// ????indexOf????
????Array.prototype.indexOf = function(item){
????var result = -1?? a_item = null;
????if (this.length == 0){
????return result;
????}
????for(var i = 0?? len = this.length; i < len; i++){
????a_item = this[i];
????if (a_item === item){
????result = i;
????break;
????} 
????}
????return result;
????}
????}
????2.?????????
?????÷?????е??????????κη??????? ???????????Щ??????·??????js????????????飬????????????????ж??????js?????????????????????????ü????????????顣???? ?ж?????js???????????????????????“toString()”??????????????????????????磺 a[1]??a["1"] ???????????????????“indexOf”??
????// ???? ???????任???
????function unique2(array){
????var n = {}?? r = []?? len = array.length?? val?? type;
????for (var i = 0; i < array.length; i++) {
????val = array[i];
????type = typeof val;
????if (!n[val]) {
????n[val] = [type];
????r.push(val);
????} else if (n[val].indexOf(type) < 0) {
????n[val].push(type);
????r.push(val);
????}
????}
????return r;
????}
????3.?????±??ж??
????????????“indexOf”?????????1????????·??????????????i???????????е???γ????λ?ò???i??????????i????????????????????????????顣
????function unique3(array){
????var n = [array[0]]; //???????
????//???????????
????for(var i = 1; i < array.length; i++) {
????//????????????i???????????е???γ????λ?ò???i??
????//????????i?????????????????????????????
????if (array.indexOf(array[i]) == i) n.push(array[i]);
????}
????return n;
????}
????4.??????????????
???????????????”sort”???????????????????????????????????????????????????·?????????????????????????????????????????????????????????????
????// ??????????????????????????
????function unique4(array){
????array.sort();
????var re=[array[0]];
????for(var i = 1; i < array.length; i++){
????if( array[i] !== re[re.length-1])
????{
????re.push(array[i]);
????}
????}
????return re;
????}
????5.??????????鷨
?????????????????÷??????????????????????·????????????????????????顣????????????????????????????????????????ж??
????// ?·?????????????????????????
????function unique5(array){
????var r = [];
????for(var i = 0?? l = array.length; i < l; i++) {
????for(var j = i + 1; j < l; j++)
????if (array[i] === array[j]) j = ++i;
????r.push(array[i]);
????}
????return r;
????}
???????demo     demo ???
?????ο??????Fast Algorithm To Find Unique Items in JavaScript Array