I've been using a function to turn different strings into snake_case. When I try to use Array.toString() to convert the final array into a string, the function still returns an array. For example, try identify(punctuated). Why is underlinedStringNew an array instead of a string?
Best regards Beni
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(/[^A-z]/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);
};