aquí está mi código-
var str = " Lots of leading space! "; var index = 0; var len = str.length-1; var i = 0; var j = 0; while(str[index] == ' ' || str[index] == '\t' || str[index] == '\n'){ index++; } while(str[i + index] != len){ str[i] = str[i + index]; i++; } str[i] = len; i = 0; index = -1; while(str[i] != len){ if(str[i] != ' ' && str[i] != '\t' && str[i] != '\n'){ index = i; } i++; } str[index + 1] = len;En javascript, las cadenas son inmutables. No puede "reemplazar" un carácter escribiendo algo como str[0] = "A" .
Dado que el fragmento de C que publicaste se basa principalmente en cambiar la cadena que le das, creo que será difícil convertirlo directamente.
¿Tal vez tiene más sentido encontrar los índices del espacio en blanco inicial y final, y luego agregar cada uno de los caracteres entre esos puntos a una nueva cadena?
var str = " Lots of leading space! "; var newStr = ""; var start = 0; var end = str.length - 1; var i; // Find start while(str[start] == ' ' || str[start] == '\t' || str[start] == '\n'){ start++; } // Find end while(str[end] == ' ' || str[end] == '\t' || str[end] == '\n'){ end--; } // Build new string i = start; while (i <= end) { newStr += str[i]; i++; } console.log(JSON.stringify(newStr));Editar: para eliminar espacios en blanco adicionales, puede modificar la forma en que construye su nueva cadena.
var str = " Lots of leading space! "; var newStr = ""; var start = 0; var end = str.length - 1; var i; function isWhiteSpace(char) { return char == ' ' || char == '\t' || char == '\n'; } // Find start while(isWhiteSpace(str[start])) { start++; } // Find end while(isWhiteSpace(str[end])) { end--; } // Build new string i = start; while (i <= end) { var char = str[i++]; if ( isWhiteSpace(char) && isWhiteSpace(newStr[newStr.length - 1]) ) continue; newStr += char; } console.log(JSON.stringify(newStr));