Forum » Programiranje » Javascript pomoc primerjava stringov
Javascript pomoc primerjava stringov
eric_cartman ::
Živjo!
Imam nek primer, ki ga rešujem oz. me zanima princip kako se to reši.
Rabil bi primerjat string s stringi v js object-u.
Nekako takole:
let test = "ABCDEF123456";
let testobject = {
"crke":{
crkeena: "ABC",
crkedva: "DEF"
},
"stevilke":{
stevilkeena: "123",
stevilkedva: "456"
}
};
Rad bi primerjal če vsota vseh stringov v objektu res sestavlja zgornji string test.
Torej najprej sem uporabil forEachloop. In potem uporabil metodo includes(). Ampak dobim nek false positive. Ker localeCompare() metoda mi recimo vrne -1, kar pomeni, da se ne ujema.
In bi prosil za pomoč, kako naj se tega lotim.
Hvala!
Lp
Imam nek primer, ki ga rešujem oz. me zanima princip kako se to reši.
Rabil bi primerjat string s stringi v js object-u.
Nekako takole:
let test = "ABCDEF123456";
let testobject = {
"crke":{
crkeena: "ABC",
crkedva: "DEF"
},
"stevilke":{
stevilkeena: "123",
stevilkedva: "456"
}
};
Rad bi primerjal če vsota vseh stringov v objektu res sestavlja zgornji string test.
Torej najprej sem uporabil forEachloop. In potem uporabil metodo includes(). Ampak dobim nek false positive. Ker localeCompare() metoda mi recimo vrne -1, kar pomeni, da se ne ujema.
In bi prosil za pomoč, kako naj se tega lotim.
Hvala!
Lp
- spremenilo: eric_cartman ()
kuall ::
Brez spretnosti iskanja po internetu se ti slaba piše kot programerju. Sem že videl take programerje, nič ne najdejo.
Tukaj je treba iskat
javascript loop object nested
in dobiš npr:
https://stackoverflow.com/questions/808...
Drgač pa poskušanje (z bolj preprostimi primeri, če ne gre) bi tukaj lepo delovalo, pa še naučil bi se. Chome, IE itd javascript debugger znaš uporabljat?
Tukaj je treba iskat
javascript loop object nested
in dobiš npr:
https://stackoverflow.com/questions/808...
Drgač pa poskušanje (z bolj preprostimi primeri, če ne gre) bi tukaj lepo delovalo, pa še naučil bi se. Chome, IE itd javascript debugger znaš uporabljat?
jype ::
Najlažje tako, da splezaš po objektu:
Potem pa lahko rečeš:
Pozor, koda je napisana iz glave, tako da ne vem, če deluje.
function allStrings(obj) { var ret = []; for (var prop in obj) { if (obj.hasOwnProperty(prop)) { switch (typeof(obj[prop])) { case "object": ret = ret.concat(allStrings(obj[prop])); break; case "string": ret.push(obj[prop]); break; } } } return ret; }
Potem pa lahko rečeš:
if (allStrings(testobject) == test) console.log("Špila.");
Pozor, koda je napisana iz glave, tako da ne vem, če deluje.
Zgodovina sprememb…
- spremenilo: jype ()
Nublet ::
OP, v zgornji jype-ov primer le dodaj pri return stavku .join(""), da iz vrnjenih tabel dobiš niz za primerjavo. Ti je dal lep primer rekurzije za traverz objektov, katerega koncept lahko uporabiš marsikje:
function allStrings(obj) { var ret = []; for (var prop in obj) { if (obj.hasOwnProperty(prop)) { switch (typeof(obj[prop])) { case "object": ret = ret.concat(allStrings(obj[prop])); break; case "string": ret.push(obj[prop]); break; } } } return ret.join(""); }
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Slo-Tech userscriptsOddelek: Izdelava spletišč | 5238 (2690) | jype |
» | Speech recognitionOddelek: Programiranje | 3461 (1518) | simba89 |
» | Download vsebine strani s JSOddelek: Izdelava spletišč | 2581 (1879) | MrBrdo |
» | Masterpage in jQuery(ajax call)Oddelek: Programiranje | 1373 (1201) | hatchette |
» | c# kako v prvi IEnumerable addati samo "Accaptable" tipe iz drugega IEnumerablaOddelek: Programiranje | 1131 (1055) | commissar |