/**
* Removes duplicate URLs from an array of URLs.
*
* @param {string[]} urls An array of URLs.
* @returns {string[]} A new array containing only unique URLs.
*/
function removeDuplicateUrls(urls) {
if (!Array.isArray(urls)) {
console.error("Input must be an array.");
return [];
}
const uniqueUrls = [];
const seen = new Set(); // Use a Set for efficient duplicate checking
for (const url of urls) {
if (typeof url !== 'string') {
console.warn("Skipping non-string value:", url);
continue;
}
const normalizedUrl = url.trim().toLowerCase(); // Normalize for case-insensitive comparison
if (!seen.has(normalizedUrl)) {
uniqueUrls.push(url);
seen.add(normalizedUrl);
}
}
return uniqueUrls;
}
// Example Usage (for testing)
// const urlList = [
// "https://www.example.com",
// "example.com",
// "https://www.example.com",
// "https://example.com",
// "example.com ",
// "invalid url",
// 123,
// "https://www.EXAMPLE.com"
// ];
// const uniqueList = removeDuplicateUrls(urlList);
// console.log(uniqueList);
Add your comment