我迄今所做的:提取數組排序列表的獨特元素
var input = [1, 1, 3, 3, 3, 5, 5, 5, 9, 9, 9, 9];
var output = [];
/*input.forEach(function(element){ // works as intended, but I know we can do better :)
if(output.indexOf(element) == -1)
output.push(element);
});*/
output.push(input[0]); // first element is always unique!
for(var i=1; i<input.length; i++){ // check rest of the elements
if(input[i] != output[i-1])
output.push(input[i]);
}
console.log(output);
正如你可能已經注意到,我的邏輯是檢查的input
的i+1th
元素等於output
的ith
元素,如果沒有,將它添加到output
但是,此代碼不起作用。它輸出:[1, 3, 3, 3, 5, 5, 5, 9, 9, 9, 9]
。
我錯過了什麼?
哦JavaScript中,在所有其他語言,你很可能已經得到了當試圖訪問未寫入還沒有一個動態數組中的條目.. – amit