var arr = [1,1,1,0,0,0,'a','b','c']; 去掉数组中的重复数据。
利用对象中属性不能重复的特性,可以很方便的实现数组去重功能。以下是我自己实现的方法:
代码虽然不多,但其中有两个循环,第一个循环利用对象属性不能重复的特点,存储数组的所有数据,同时去重,第二个循环遍历对象重组数组。由于循环过多,所以不是最好实现方案,可以考虑去掉一个循环,如下:
遍历数组的同时判断是否已经存储过,如果没有存储过,则存入一个任意字符串‘abc’,这里可能比较难以理解,这个地方不能写成 this[i] ,为防止出现数字0的情况,如果有 0,!obj[this[i]] 这个判断条件则会一直进入,导致无法去重0,所以使用一个不为0的任意值。