Zso*_*rai 2 javascript arrays for-loop
我知道这是一个愚蠢的问题,但我现在只学习编程3个月.
如果你不能使用更高阶函数和内置方法,如filter或indexOf,你会如何解决这个问题?
创建一个函数,该函数获取数字列表并返回一个新列表,其中删除了所有重复值
到目前为止,我得到了这个,但我认为这是一个死路一条......
const array = [1, 2, 3, 3, 1];
const removeDuplicate = () => {
let shortArray = [];
let index = 0;
for (let i = 0; i < array.length; i++) {
for (let j = 0; j < array.length; j++) {
if (i != j) {
if (array[i] == array[j]) {
shortArray[index] += array[i]
console.log(array[i]);
}
}
}
}
return shortArray;
}
console.log(removeDuplicate());
Run Code Online (Sandbox Code Playgroud)
归还这个:
1
3
3
1
[ NaN ]
Run Code Online (Sandbox Code Playgroud)
谢谢!
使用对象作为帮助者.如果帮助程序中出现一个值,则它不是唯一的,可以忽略.如果它不在帮助器中它是唯一的,则将其推入结果数组,并将其添加到辅助对象.
const array = [1, 2, 3, 3, 1];
const removeDuplicate = (arr) => {
const helperMap = {};
const result = [];
for (let i = 0; i < arr.length; i++) {
const item = arr[i];
if (!helperMap[item]) {
result[result.length] = item;
helperMap[item] = true;
}
}
return result;
};
console.log(removeDuplicate(array));Run Code Online (Sandbox Code Playgroud)