簡體   English   中英

如何將包含符號的數組轉換為字符串?

[英]How to convert array containing a Symbol to string?

我有一個可以包含 Symbol() 項的數組。 Array.toSring 帶來了一個異常。

 const s = [10, 'abc', Symbol('test')].toString(); // this throws an exception console.log([10, 'abc', Symbol('test')]); // this works

將此類數組轉換為字符串的最佳方法是什么(如 console.log 所做的)?

.map數組,首先在每個符號上調用toString

 const s = [10, 'abc', Symbol('test')].map(val => typeof val === 'symbol'? val.toString(): val).join(','); console.log(s);

要將符號轉換為字符串,您必須明確地這樣做。

允許對符號調用toString ,因為這會調用Symbol.prototype.toString()

相反,嘗試將 Symbol 隱式轉換為字符串,例如使用Array.prototype.join (或Array.prototype.toString ,內部調用Array.prototype.join+等),調用ToString操作,該操作當參數是符號時拋出。

只需將符號轉換為字符串,而不是轉換整個數組

const s = [10, 'abc', Symbol('test').toString];

你能在數組上調用 before.toString() 之前對數組做一個小操作嗎? 像這樣的東西:

function myFunction() {
  var fruits = [10, 'abc', Symbol('test')];
  var test = [];
  for(item of fruits){
      if(typeof(item) === "symbol"){
          test.push(item.toString());
      }
      else{test.push(item)}

  }
  var x = test.toString();

問題是我們不想在數組的每個項目上調用.toString() 方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM