Jak převést Array na String v JavaScriptu pomocí toString() a join()

Tento krátký tutoriál vám ukáže dva způsoby, jak převést pole JavaScriptu na řetězce pomocí metod toString() a join().

Co jsou pole?

Pole je datová struktura, která obsahuje více hodnot. Je to jako očíslovaný seznam – každá položka v poli má hodnotu a pozici (tzv. index ). indexy začněte počítat na pozici 0 , takže první položka v poli je na indexu 0 , druhý na indexu 1 a tak dále.

Převod polí na řetězce v JavaScriptu

Existuje mnoho důvodů, proč můžete chtít převést pole na řetězec. Nejčastěji můžete chtít zobrazit pole a jeho obsah jako prostý text na webové stránce.

Pole JavaScriptu mohou obsahovat jakýkoli typ hodnoty – řetězce, čísla, objekty – takže při převodu pole na řetězec budete muset mít na paměti, jak budou hodnoty v poli po převedení také vypadat.

Metoda Array toString()

Funkce toString() metoda vrací řetězcovou reprezentaci pole a jeho obsahu.

Syntaxe je následující:

array.toString()

Všimněte si, že:

  • pole může být jakákoli proměnná pole
  • Vrátí se řetězcová reprezentace pole
  • Hodnoty v poli budou odděleny čárkami ve výsledném řetězci
  • Původní pole se nemění voláním toString()

Příklady pole toString()

var myArray = ["dog", "cat", "mouse"];
var myString = myArray.toString();
console.log(myString);

Výše uvedený kód vypíše do konzole následující:

dog,cat,mouse

Hodnoty pole jsou odděleny čárkami .

Níže je několik různých typů proměnných uložených v poli před převodem na řetězec, abyste viděli, jak budou vypadat řetězcové reprezentace těchto objektů:

var myArray = ["bird", 1, false, new Date(), {foo: "bar"}];
var myString = myArray.toString();
console.log(myString);

Což vypíše:

bird,1,false,Wed Nov 10 2021 22:02:23 GMT+0000 (Greenwich Mean Time),[object Object]

Všimněte si, že řetězec a číselné hodnoty vypadají podle očekávání a že booleovská hodnota byla také převedena na text.

Zajímavější jsou poslední dvě položky v poli.

 Datum objekt má svou vlastní toString() vestavěná metoda, která byla zavolána, aby jej převedla na řetězec pro zahrnutí do stringovaného pole.

Obecný objekt ({foo:„bar“} ) nemá toString() metoda – a tedy její řetězcová reprezentace je obecný identifikátor objektu.

Metoda Array join()

The join() metoda funguje podobně jako toString() metoda, přičemž vám umožňuje volitelně určit, který znak bude použit k oddělení položek pole ve výsledném řetězci.

Syntaxe je následující:

array.join(SEPARATOR)

Všimněte si, že:

  • pole může být jakákoli proměnná pole
  • Vrátí se řetězcová reprezentace pole
  • Hodnoty v poli budou odděleny čárkami ve výsledném řetězci
    • POKUD nepovinný SEPARATOR je definován
  • Původní pole se nemění voláním join()

Příklady pole join()

var myArray = ["dog", "cat", "mouse"];
var myString = myArray.join();
console.log(myString);

Výše uvedený kód vypíše do konzole následující:

dog,cat,mouse

Všimněte si výchozího odděleného čárkou hodnoty. Můžete zadat jiný oddělovač (nebo žádný oddělovač):

var myArray = ["dog", "cat", "mouse"];
var myString = myArray.join('-');
console.log(myString);

Což se vrátí:

dog-cat-mouse

Nebo bez oddělovače (zadaného prázdným řetězcem):

var myArray = ["dog", "cat", "mouse"];
var myString = myArray.join('');
console.log(myString);

Což se vrátí:

dogcatmouse

Chování při práci s neřetězcovými hodnotami je stejné jako u toString() , popsaný výše:

var myArray = ["bird", 1, false, new Date(), {foo: "bar"}];
var myString = myArray.join();
console.log(myString);

Výsledkem je následující výstup:

bird,1,false,Wed Nov 10 2021 22:02:23 GMT+0000 (Greenwich Mean Time),[object Object]