harry-potter
harry-potter

Reputation: 2049

Remove duplicate in a string - javascript

I have a string in javascript where there are a lot of duplicates. For example I have:

var x = "Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Double,Double,Double"

What can I do to delete duplicates and to get for example x="Int32,Double"?

Upvotes: 22

Views: 86379

Answers (12)

Virinchi Manepalli
Virinchi Manepalli

Reputation: 303

you can use the replaceAll function:

let str = "/Courses/"

let newStr = str.replaceAll('/', '')

console.log(newStr) // result -> Courses

Upvotes: 0

Kritish Bhattarai
Kritish Bhattarai

Reputation: 1661

You can use Set()

const result = Array.from(new Set(x)).join('')

var x = "Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Double,Double,Double"
const result = Array.from(new Set(x)).join('')

console.log(result)

Upvotes: 0

Gs malhotra
Gs malhotra

Reputation: 51

Its simple just remove duplicates in string using new Set and join them.

var x = "Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Double,Double,Double";
console.log([...new Set(x)].join(""));

Upvotes: 5

Amit Sharma
Amit Sharma

Reputation: 1

const str =  "Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Double,Double,Double";
const usingSpread = [...str]
const duplicatesRemove = [...new Set(usingSpread)]
const string = duplicatesRemove.join("")
console.log("After removing  duplicates: " + string)

STEPS

  1. convert string to character array using spread operator
  2. new Set will implicitly remove duplicate character
  3. convert character array to string using join("") method

Upvotes: -1

Mohammad Basit
Mohammad Basit

Reputation: 575

Check This out -

removeDuplicates() function takes a string as an argument and then the string split function which is an inbuilt function splits it into an array of single characters. Then the arr2 array which is empty at beginning, a forEach loop checks for every element in the arr2 - if the arr2 has the element it will not push the character in it, otherwise it will push. So the final array returned is with unique elements. Finally we join the array with the join() method to make it a string.

const removeDuplicates = (str) => {
const arr = str.split("");
const arr2 = [];

arr.forEach((el, i) => {
 if (!arr2.includes(el)) {
    arr2.push(el);
   }
 });
 return arr2.join("").replace(",", "").replace("", " ");
};

console.log(removeDuplicates( "Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Double,Double,Double"));

Upvotes: 1

Crepkey
Crepkey

Reputation: 423

That is a more readable and better parameterized solution:

var x = "Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Double,Double,Double"
var removeDup = [...new Set(x.split(","))].join(",");

//result "Int32,Double"

Upvotes: 2

Anjana Choudhary
Anjana Choudhary

Reputation: 59

  function myFunction(str) {
    var result = "";
    var freq = {};
    for(i=0;i<str.length;i++){
       let char = str[i];
       if(freq[char]) {
        freq[char]++;      
       } else {
        freq[char] =1
        result = result+char;
       }
    }
    return result;
  }

Upvotes: 3

TiglathPileser
TiglathPileser

Reputation: 53

Use new js syntax remove Dupicate from a string.

String.prototype.removeDuplicate = Function() {
  const set = new Set(this.split(','))
  return [...set].join(',')
}
x.removeDuplicate()

Upvotes: 3

Darvin Kumar
Darvin Kumar

Reputation: 133

function removeDups(s) {
let charArray = s.split("");
  for (let i = 0; i < charArray.length; i++) {
    for (let j = i + 1; j < charArray.length; j++)
      if (charArray[i] == charArray[j]) {
        charArray.splice(j, 1);
        j--;
      }
  }
  return charArray.join("");
}
console.log(removeDups("Int32,Int32,Int32,InInt32,Int32,Double,Double,Double"));

Upvotes: 0

adeneo
adeneo

Reputation: 318182

If you have to support current browsers, you can split the array and then filter it

var x = "Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Double,Double,Double";
    
var arr = x.split(',');
    
x = arr.filter(function(value, index, self) { 
    return self.indexOf(value) === index;
}).join(',');

document.body.innerHTML = x;

Upvotes: 4

MinusFour
MinusFour

Reputation: 14423

With Set and Array.from this is pretty easy:

Array.from(new Set(x.split(','))).toString()

var x = "Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Int32,Double,Double,Double"
x = Array.from(new Set(x.split(','))).toString();
document.write(x);

Upvotes: 59

thanhpk
thanhpk

Reputation: 4287

function removeDuplicate(x)
{
    var a = x.split(',');
    var x2 = [];
    for (var i in a)
        if(x2.indexOf(a[i]) == -1) x2.push(a[i])
    return  x2.join(',');
}

Upvotes: 0

Related Questions