[英]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.