使用 JavaScript 自定义函数从数组中删除重复项
在本问题陈述中,我们的目标是编写一个算法,使用 Javascript 功能,通过函数从数组中删除重复项。
理解问题陈述
在上述问题陈述中,我们必须创建一个函数,该函数可以接受一个数组作为参数,并返回一个新数组,该新数组存储来自给定输入数组的唯一项,而不包括相同的项。例如 - 假设我们有一个数组 [0, 0, 2, 2, 3, 3],那么删除重复数字后,我们将得到一个新数组 [0, 2, 3]。
给定问题的逻辑
该算法将迭代输入数组中的元素,然后如果该项尚未添加,则将其添加到新创建的唯一项数组中。我们将使用 Javascript 的 map 函数来提供有效的 时间复杂度。
算法
步骤 1:定义一个函数,从数组中删除重复数字并返回一个包含唯一元素的新数组作为输出。
步骤 2:创建一个新数组来存储输入数组的唯一元素作为结果数组。
步骤 3:我们将使用 map 方法来存储之前在数组中看到的项。
步骤 4:使用 for 循环迭代输入数组项。
步骤 5:检查条件:数组项是否之前已出现。如果是,则将其设置为 true 并将所有唯一项推入结果数组。
示例
//function to extract the duplicate items from the array function removeDuplicateItems(array) { var result = []; var saw= new Map(); for (let i = 0; i < array.length; i++) { if (!saw.has(array[i])) { saw.set(array[i], true); result.push(array[i]); } } return result; } const array = [11, 21, 21, 31, 41, 41, 51]; console.log(removeDuplicateItems(array));
输出
[ 11, 21, 31, 41, 51 ]
复杂度
算法的时间复杂度为 O(n),其中 n 是输入数组的长度。因为我们遍历了数组项以检查数组中的重复项。
结论
在上面的函数中,我们实现了一个从数组中删除相同项的代码。此任务的时间复杂度为 O(n),这取决于数组的大小。
广告