function clear(arr) {
// 1 å¦ä½è·åæ°ç»ä¸æ¯ä¸ä¸ªå
ç´ åºç°ç次æ°
var o = {}; // 1.1 è®°å½æ°ç»ä¸å
ç´ åºç°ç次æ°
for (var i = 0; i < arr.length; i++) {
var item = arr[i]; // æ°ç»ä¸çæ¯ä¸ä¸ªå
ç´
// o[item] = 1;
// 1.2 å¤æo对象æ¯å¦æå½åéåå°çå±æ§
if (o[item]) {
// å¦æo[item] åå¨ï¼è¯´æ次æ°ä¸ä¸º1
o[item]++;
} else {
// å¦æo[item] ä¸åå¨ï¼è¯´ææ¯ç¬¬ä¸æ¬¡åºç°
o[item] = 1;
}
}
// console.log(o);
// 2 çæä¸ä¸ªæ°çæ°ç»ï¼åå¨ä¸éå¤çå
ç´
var newArray = [];
// 2.1 éå对象oä¸çææå±æ§
for (var key in o) {
// 2.2 å¤æo对象ä¸å½åå±æ§çå¼æ¯å¦ä¸º 1 å¦æ为1 说æä¸éå¤ç´æ¥æ¾å°æ°æ°ç»ä¸
if (o[key] === 1) {
newArray.push(key);
} else {
// o对象ä¸å½åå±æ§ 次æ°ä¸ä¸º1 ï¼è¯´ææéå¤çï¼å¦ææéå¤çè¯ï¼åªåå¨ä¸æ¬¡
// å¤æå½åçnewArrayæ°ç»ä¸æ¯å¦å·²ç»æ该å
ç´
if (newArray.indexOf(key) === -1) {
newArray.push(key);
}
}
}
return newArray;
}
var array = ['c', 'a', 'z', 'a', 'x', 'a'];
var newArray = clear(array);
console.log(newArray);
温馨提示:答案为网友推荐,仅供参考