ahn*_*kee 2 javascript algorithm duplicates
今天上课时我们被要求写一个算法.
给定一个数组,删除重复值:
.push)在与它摔跤一段时间之后,这就是我想出来的.
function remove_dupes(arr){
var seen = {};
var count = 0;
for( var i = 0; i < arr.length - count ; i++) {
arr[i] = arr[i+count];
if( seen[arr[i]] ) {
count++;
arr[i] = arr[i+count];
i--;
}
seen[arr[i]] = true;
}
arr.length = arr.length - count;
}
Run Code Online (Sandbox Code Playgroud)
我在这里有一些重复的代码,我觉得这可能i--不是最好的方法.
有什么方法可以改进这个代码(不使用内置函数)?
小智 5
最后,我想我没有创建新数组就得到了你想要的东西:
function remove_dupes(arr){
var seen = {};
var k = 0;
for( var i=0; i<arr.length ;i++) {
if( !seen[arr[i]] ) {
arr[k++] = arr[i];
seen[arr[i]] = 'seen';
}
}
arr.length = k;
}
var x = [ 1, 2, 1, 4, 5, 3, 'dojo', 4, 6, 6, 7, 7, 6, 7, 5, 6, 6, 6, 6, 7, 'dojo', 11 ];
remove_dupes(x);
document.write(x);Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.