簡體   English   中英

Array.toString()返回數組而不是字符串-為什么? Java腳本

[英]Array.toString() returns array instead of string - Why? Javascript

我一直在使用一個函數將不同的字符串轉換為snake_case。 當我嘗試使用Array.toString()將最終數組轉換為字符串時,該函數仍會返回一個數組。 例如,嘗試標識(標點)。 為什么underlinedStringNew是數組而不是字符串?

最好的問候貝尼

 let punctuated = ',Hello, World???' function identify(input) { let array = input.split(""); let smallArray = []; let newestArray = []; for (let i = 0; i < array.length; i++) { smallArray[i] = array[i].toLowerCase(); } for (let i = 0; i < array.length; i++) { if (array[i] == "." && array[i + 1] == ".") { return "WtfCase"; } } let underlinedString = input.replace(/[^Az]/g, "_"); let smallUnderlinedArray = []; let capitalizedLetters = []; let underlinedArray = underlinedString.split(""); console.log("Underlined Array: " + underlinedArray); for (let i = 0; i < underlinedArray.length; i++) { smallUnderlinedArray[i] = underlinedArray[i].toLowerCase(); } for (let i = 1; i < underlinedArray.length; i++) { if (underlinedArray[i] !== smallUnderlinedArray[i]) { capitalizedLetters.push(i); }; }; for (let i = 0; i < capitalizedLetters.length; i++) { underlinedArray.splice(capitalizedLetters[i], 0, "_"); } let i = 0; for (i; i < underlinedArray.length; i++) { if (underlinedArray[i] == "_" && underlinedArray[i + 1] == "_") { underlinedArray.splice(i, 1); i = i - 1; }; }; if (underlinedArray[underlinedArray.length - 1] == "_") { underlinedArray.splice(underlinedArray.length - 1, 1); } if (underlinedArray[0] == "_") { underlinedArray.splice(0, 1); } let underlinedStringNew = underlinedArray.toString(); console.log("Should be a string: " + underlinedStringNew); }; 

我認為您正在尋找的是加入不帶,數組元素。 默認情況下, join補充, 如果要刪除它們,請使用空字符串''

// note that I simply a bit your code just to showcase the solution.
var a = ',Hello, World???'.replace(/[^A-z]/g, "_").split("").join('');
console.log("Should be a string: " + a);

輸出:

Should be a string: _Hello__World___

如果要了解有關join更多信息,請檢查MDN 一些例子:

var elements = ['Fire', 'Wind', 'Rain'];

console.log(elements.join());
// expected output: Fire,Wind,Rain

console.log(elements.join(''));
// expected output: FireWindRain

console.log(elements.join('-'));
// expected output: Fire-Wind-Rain

您的代碼應該沒問題。 例如,

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString();

如果您對其進行控制,將會看到類似Banana,Orange,Apple,Mango

但是,如果要替換逗號(,)並將其替換為空格

假設,

var punctuated = "Banana,Orange,Apple,Mango"
punctuated.split(",").join(" ");

結果將是Banana Orange Apple Mango

要了解有關從字符串替換的更多信息,請點擊以下鏈接

暫無
暫無

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

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