从数组中删除带有额外关键字的重复项可以通过以下步骤实现:
以下是一个示例的JavaScript代码实现:
function removeDuplicatesWithKeyword(arr, keyword) {
const countMap = {}; // 哈希表记录元素出现次数
// 第一次遍历,记录元素出现次数
for (let i = 0; i < arr.length; i++) {
const element = arr[i];
if (element.includes(keyword)) {
// 如果元素包含额外关键字,则添加到哈希表中
if (countMap[element]) {
countMap[element]++;
} else {
countMap[element] = 1;
}
}
}
// 第二次遍历,删除重复项
for (let i = arr.length - 1; i >= 0; i--) {
const element = arr[i];
if (element.includes(keyword) && countMap[element] > 1) {
arr.splice(i, 1); // 从数组中删除重复项
}
}
return arr;
}
// 示例用法
const array = ["apple", "banana", "apple123", "orange", "banana456", "apple789", "pear"];
const keyword = "apple";
const result = removeDuplicatesWithKeyword(array, keyword);
console.log(result); // 输出: ["apple", "banana", "orange", "banana456", "pear"]
这个方法通过使用哈希表来记录元素出现次数,避免了多次遍历数组的开销。它可以删除数组中带有额外关键字的重复项,并返回处理后的数组。
领取专属 10元无门槛券
手把手带您无忧上云