返回
盘点JS面试必考题之数组去重
前端
2023-09-20 21:12:33
JS面试题之数组去重
数组去重是 JavaScript 面试中常见的问题。给定一个数组,要求返回一个包含数组中所有唯一元素的新数组。
使用 indexOf() 方法
indexOf() 方法可以返回数组中指定元素的索引值。如果数组中不包含指定元素,则返回 -1。我们可以利用 indexOf() 方法来实现数组去重。
const arr = [1, 2, 3, 4, 5, 1, 2, 3];
const uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
if (uniqueArr.indexOf(arr[i]) === -1) {
uniqueArr.push(arr[i]);
}
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]
使用 Set 对象
Set 对象是 JavaScript 中的一个内置对象,它可以存储唯一值。我们可以利用 Set 对象来实现数组去重。
const arr = [1, 2, 3, 4, 5, 1, 2, 3];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
使用 filter() 方法
filter() 方法可以创建一个包含通过指定条件的所有元素的新数组。我们可以利用 filter() 方法来实现数组去重。
const arr = [1, 2, 3, 4, 5, 1, 2, 3];
const uniqueArr = arr.filter((item, index, arr) => {
return arr.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]
使用 reduce() 方法
reduce() 方法可以将数组中的所有元素减少为一个单一值。我们可以利用 reduce() 方法来实现数组去重。
const arr = [1, 2, 3, 4, 5, 1, 2, 3];
const uniqueArr = arr.reduce((acc, item) => {
if (acc.indexOf(item) === -1) {
acc.push(item);
}
return acc;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
总结
本文介绍了四种不同的数组去重方法,包括使用 indexOf() 方法、使用 Set 对象、使用 filter() 方法和使用 reduce() 方法。这些方法各有优缺点,开发者可根据具体情况选择合适的方法。