• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[JS] Konwersja stringa na tablice / brakujące litery

Object Storage Arubacloud
0 głosów
1,968 wizyt
pytanie zadane 10 września 2019 w JavaScript przez 42savage Bywalec (2,630 p.)
edycja 10 września 2019 przez 42savage

 

Ok, a więc mam zadanie, żeby posortować alfabetycznie i usunąć zduplikowane literki, a następnie porównać długości obu stringów i zwrócić, ten o większej długości.

Robie to w taki sposób, że najpierw zamieniam stringa na tablice a potem sortuje i koniec końców z powrotem zamieniam na stringa.

Problem jest taki, że 

    [...new Set(arr2)]

ucina mi za dużo literek, nawet jeżeli nie są zduplikowane

var s1= "loopingisfunbutdangerous"
var s2 = "essdangerousthancoding"

function longest(s1, s2) {
    var arr1 = s1.split('').sort();
    var arr2 = s2.split('').sort();
    let result1 = [...new Set(arr1)].join('');
    let result2 = [...new Set(arr2)].join('');
    if(result1.length > result2.length){
        console.log(result1)
        return result1;
    }
    else{
        console.log(result2)
        return result2;
    }
}

longest(s1, s2)

przykładowe s1 i s2

aretheyhere, yestheyarehere = powinny być: aehrsty, zjadło "s"

1
komentarz 10 września 2019 przez Tomek Sochacki Ekspert (227,510 p.)
jeśli już chcesz robić takie operacje to kompletnie bez sensu jest sortowanie na wstępie obu stringów - na starcie interesuje Cię tylko jakie mają unikalne znaki i który jest dłuższy i dopiero ten jeden posortuj, inaczej bez sensu poświęcisz czas na zbędne sortowanie. Na kom. nie lubię pisac kodu więc najwyżej jak nikt nie pomoże to jak będę przy kompie zerknę na kod.
komentarz 11 września 2019 przez 42savage Bywalec (2,630 p.)

Mistrzu,  zajrzysz? laugh
A co do operacji rzeczywiście nie przemyślałem tego do końca.

1 odpowiedź

0 głosów
odpowiedź 11 września 2019 przez niezalogowany
let s1= "loopingisfunbutdangerous"
let s2 = "essdangerousthancoding"
let arr1 = s1.split('');
let arr2 = s2.split('');
let result1 = Array.from(new Set(arr1));
let result2 = Array.from(new Set(arr2));
if(result1.length > result2.length){
console.log(result1.sort());
} else {
console.log(result2.sort());
}      

 

komentarz 11 września 2019 przez danielb Bywalec (2,520 p.)
Samego mnie zainteresowało, to zagadnienie, podoba mi się, ten twój sposób podejścia do tematu, krótko i zwięzłe :-)
komentarz 11 września 2019 przez 42savage Bywalec (2,630 p.)

Czy ja wiem czy to krótko i zwięźle coś dało. Dalej zjada literki, w dodatku nie zwraca stringa, tylko loguje w konsoli tablice.

komentarz 11 września 2019 przez niezalogowany
Zwracanie możesz sobie dorobić sam, ja nie będę za Ciebie pisał gotowca.

Jakie literki Ci zjada bo mi żadnych nie zjadło.
komentarz 11 września 2019 przez 42savage Bywalec (2,630 p.)
edycja 11 września 2019 przez 42savage

Expected: 'abcdefghilnoprstu', instead got: 'abdefgilnoprstu'

Expected: 'acefghilmnoprstuy', instead got: 'acefhinoprstu'

 

Array.from(new Set(arr1)); to to samo co moje [...new Set(arr1)];


Nie wiem co to za zmiana

komentarz 11 września 2019 przez niezalogowany
Kod działa prawidłowo, sprawdź czy testy dobrze napisałeś, w dwóch expected masz literkę 'c' a tylko w jednym stringu występuje.

A co do uwagi dotyczącej zmiany to przemilczę.

Podobne pytania

0 głosów
1 odpowiedź 214 wizyt
pytanie zadane 15 lutego 2021 w C i C++ przez Rainbow99 Początkujący (430 p.)
0 głosów
2 odpowiedzi 357 wizyt
0 głosów
0 odpowiedzi 249 wizyt

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...