javascript 使用对象优先于数组删除重复项。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 使用对象优先于数组删除重复项。相关的知识,希望对你有一定的参考价值。

function removeDupes(str) {
    const uniqueChars = []
    const chars = {}

    for(let i=0; i < str.length; i++){ // O(n)
        const thisItem = str[i]
        
        // I'm checking if inside of the object Chars there is 
        // the letter with a true value which means that it found 
        // that element into the object so does not fo anything
        // else it add it to the uniqueChars array and also
        // add it into the object to search for it int the loop
        // And I do that because searching trough an object is instantaneous O(1)
        // rather than use includes which lopps trough the whole array

        if(chars[thisItem] === true){ // O(1)
            continue
        }else{
            uniqueChars.push(thisItem)
            chars[thisItem] = true
        }
    }
    return uniqueChars.join('')
}

console.log(
  //removeDupes('abcd'),          // abcd
  removeDupes('aabbccdd'),      // abcd
  //removeDupes('abababcdcdcd'), // abcd

)

// Time:  O(n)
// Space: O(n)

以上是关于javascript 使用对象优先于数组删除重复项。的主要内容,如果未能解决你的问题,请参考以下文章

使用 JavaScript 从数组中删除所有重复项 [重复]

使用javascript删除与对象的另一个键和值对相对应的对象数组中的重复项

JavaScript:删除共享相同属性值的对象的重复项

JavaScript ES6 - 计算对象数组的重复项

使用值将数组中对象的属性合并在一起并删除重复项

删除javascript数组中重复对象的所有实例[重复]