Próbuję wykonać iterację po liście „wartości” i przekonwertować ją na ciąg. Oto kod:
var blkstr = $.each(value, function(idx2,val2) {
var str = idx2 + ":" + val2;
alert(str);
return str;
}).get().join(", ");
Funkcja alert () działa dobrze i wyświetla odpowiednią wartość. Ale w jakiś sposób funkcja .get () jquery nie pobiera właściwego rodzaju obiektu i kończy się niepowodzeniem. Co ja robię źle?
Odpowiedzi:
Jeśli
value
jest tablicą asocjacyjną, taki kod będzie działał dobrze:(dane wyjściowe pojawią się w konsoli programisty)
Jak wspomniał Felix,
each()
po prostu iteruje tablicę, nic więcej.źródło
Konwersja z tablicy na łańcuch jest taka prosta!
To wszystko. Teraz A to ciąg. :)
źródło
[1,2,[3]].toString()
, dostaniesz1,2,3
, co jest dość bzdurą. Ta odpowiedź jest po prostu gorszym sposobem na napisanie tego samego wywołania do tej samej zepsutej, natywnej metody łańcuchowej. 42 głosy za ??['Sunday','Monday','Tuesday','Wednesday','Thursday'].join('');
Array.join()
jest zdecydowanie najlepszą opcją, ponieważ nie będzie po prostu łączyć wartości przecinkami, ale pozwoli użytkownikowi określić, w jaki sposób należy przeprowadzić konkatenację. Możesz na przykład użyć przecinka + spacji.Możesz użyć,
.toString()
aby połączyć tablicę przecinkiem.Lub ustaw separator za pomocą
array.join('; '); // result: a; b; c
.źródło
nie jestem pewien, czy tego chciałeś, ale
Powoduje to następujący wynik:
źródło
Cztery metody konwersji tablicy na ciąg.
Zmuszanie do struny
Powołanie
.toString()
Jawne dołączanie za pomocą
.join()
Możesz użyć innych separatorów, na przykład
', '
Za pomocą
JSON.stringify()
Jest to czystsze, ponieważ cytuje ciągi znaków wewnątrz tablicy i prawidłowo obsługuje zagnieżdżone tablice.
źródło
jQuery.each
po prostu zapętla tablicę, nie robi nic ze zwracaną wartością ∆ . SzukaszjQuery.map
(też uważam, że nieget()
jest to konieczne, ponieważ nie masz do czynienia z obiektami jQuery):PRÓBNY
Ale po co w ogóle używać jQuery w tym przypadku?
map
wprowadza tylko niepotrzebne wywołanie funkcji na element.∆: Używa tylko wartości zwracanej, czy ma kontynuować pętlę nad elementami, czy nie. Zwrócenie „fałszywej” wartości zatrzyma pętlę.
źródło
map
wtedy, gdyvalue
jest to obiekt jQuery. A potem powinieneś użyćvalue.map(...).get()
. Ale jeśli masz tylko tablicę obiektów jQuery, nie potrzebujeszget
. Nie ma za co :)Posługiwać się
join()
i separatora.Przykład roboczy
źródło
to moja funkcja, przekonwertuj obiekt lub tablicę na json
po prostu edytuję do wersji 0.2 ^. ^
źródło
Potrzebowałem tablicy, aby stać się String rappresentation tablicy, to znaczy potrzebowałem tego
może ktoś tego potrzebuje :)
źródło
LUB
źródło
przekonwertować tablicę na ciąg parametrów GET, który można dołączyć do adresu URL, można wykonać w następujący sposób
nazwij tę funkcję jako
która przekieruje użytkownika do / site / search? strona z parametrami get przedstawionymi w tablicy podanej do encodeGet.
źródło
Nie należy mylić tablic z listami ... To jest lista: {...} i nie ma długości ani innych właściwości tablicy.
To jest Array: [...] i możesz używać funkcji tablicowych, metod itp., Tak jak ktoś zasugerował tutaj: someArray.toString ();
"someObj.toString ();" po prostu nie będzie działać na żadnym innym typie obiektów, takim jak listy. ;-)
źródło
Array.prototype.toString ()
Metoda toString () zwraca ciąg znaków reprezentujący określoną tablicę i jej elementy.
Składnia
Wartość zwracana
Ciąg reprezentujący elementy tablicy.
po więcej informacji :
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString
źródło
Oto przykład użycia funkcji podkreślenia.
Ostateczny wynik to „moe, larry, curly”
źródło