es5中可以利用for語句和indexOf()函數來實現數組去重,語法“for(i=0;i<數組長度;i++){a=newArr.indexOf(arr[i]);if(a==-1){…}}”。在es6中可以利用擴展運算符、Array.from()和Set來去重;需要先將數組轉為Set對象來去重,然后利用擴展運算符或Array.from()函數來將Set對象轉回數組即可。

本教程操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。
es5 數組去重
使用indexOf(可返回某個指定的字符串值在字符串中首次出現的位置,如果首次出現,返回-1)
var arr = [1,2,3,1,3,4,5]; Array.prototype.myInfo = function(){ var newArr = []; for(var i=0;i<arr.length;i++){ var a = newArr.indexOf(arr[i]); if(a == -1){ newArr[newArr.length] = arr[i]; } } return newArr; } var result = arr.myInfo(); console.log(result);
登錄后復制

es6 數組去重
Set不允許有重復的元素
let arr = [1,2,1,2,3]; let result = new Set(arr); console.log(result); console.log(Array.from(result));
登錄后復制

rest 方法操作符為“…”
… 將字符從數組中剝離出來
let arr = [1,2,1,2,3]; let result = new Set(arr); console.log(result); console.log(...result); console.log([...result]); console.log([...new Set(arr)]);
登錄后復制

【
站長資訊網