完善函數 unique
的功能。javascript
以下所示:java
unique([10,2,3,4,2,10]); // 返回結果爲 [10,2,3,4]
function unique(str){ var newArr = []; for (var i=0,len=str.length; i<len; i++){ var isRepeat = false; for(var j=0; j<newArr.length;j++){ if(str[i]==newArr[j]){ isRepeat = true; break; } } if(!isRepeat){ newArr.push(str[i]); } } return newArr; }
方法一循環遍歷判斷數組
思路:函數
function unique(numbers) { // 建立一個結果數組 var resultArr = []; // 循環遍歷原數組,每次抽出一個數字進行判斷 for(var i = 0; i < numbers.length; i++){ // 標識符:是否重複 var isRepeat = false; // 循環遍歷結果數組,進行對比 for(var j = 0; j < resultArr.length; j++){ if(numbers[i] == resultArr[j]){ isRepeat = true; // 若是發現重複,則不需進行後面判斷了 break; } } // 若是沒重複,則存進結果數組 if(!isRepeat){ resultArr.push(numbers[i]); } } return resultArr; }
官答如上spa
思路:code
function unique(numbers) { // 建立一個新的數組 var resultArr = []; var numbersObj = {}; var i = 0; for(; i < numbers.length; i++){ // 若是該數字還沒見過,則放進新數組中 if(!numbersObj[numbers[i]]){ resultArr.push(numbers[i]); numbersObj[numbers[i]] = 1; } } return resultArr; }