javascript剔除数组重复元素的简单方法

    现有数组var array = ['测试','学习','测试'];其中array[0]与array[2]值相同,需剔除重复值并输出。依据javascript对象不能有相同键以及相同键值覆盖的特点。实现如下:

(1)简单版
1 var array = ['测试','学习','测试'];
2 var object = {};
3 for(var i = 0, length = array.length; i < length; i++){
4     object[array[i]] = i;
5 }
6 for(var property in object){
7     console.log(property);
8 }
  firefox输入结果为:学习、测试。总结:该方法虽简单,但输出结果的顺序随机。如上可能是“测试、学习”。
 
(2)改进版
 1 var array = ['测试','学习','测试'];
 2 var temp = [];
 3 var result = [];
 4  
 5 var object = {};
 6 var j = 0;
 7 for(var i = 0, length = array.length; i < length; i++){
 8     object[array[i]] = i;
 9 }
10 for(var property in object){
11    temp[object[property]] = property;
12 }
13 for(i = 0, length = temp.length; i < length; i++){
14    if(temp[i]){
15      result[j++] = temp[i];
16    }
17 }
总结:该方法可确保数组重复值时后面元素覆盖前面元素,但需3*n次循环。