Я пытаюсь взять строку с пробелами и построчно отображать каждое слово в выводе консоли.
Мой код JavaScript принимает строку и создает массив индексов, где пробелы идентифицируются с помощью операции indexOf (). Затем он проходит через цикл срезов, который вычитает различные индексы, чтобы получить длину строки для среза, и индекс пространства, чтобы найти ее в существующей строке. Выводом является последний файл console.log, и он, кажется, делает то, что мне нужно, даже при передаче случайных строк.
var sp = " ";
var myStr = "I am a \"double quoted\" string inside \"double quotes\""
var twoStr = 'I am a string "and I am a string"';
var stringadd = "and I can slice whenever I want."
var threeStr = myStr + sp + twoStr;
var fourStr = threeStr + sp + stringadd;
console.log("string length = ", fourStr.length);
var i = 0;
var n = 0;
var sentence = [i];
for (n = 0; n < fourStr.length; n++) {
var pos = fourStr.indexOf(sp, n) //find the index of the space
if (n == pos) {
sentence[i] = pos; //place the index in an array
i++;
} else(i);
}
var arraysent = fourStr.split(sp); //test split function for string
console.log("Array Sentence:\n", arraysent)
console.log("space index length:\n", sentence.length) //check array length
console.log("space index array:\n", sentence) //display array with "space" indexes
console.log("sliced string:\n", fourStr.slice(sentence[0] - 1, sentence[0])); //display first index
var j = 0;
for (j = 0; j < sentence.length; j++) {
var slicesent = fourStr.slice(sentence[j], sentence[j + 1]); //automate remaining index display
console.log(slicesent);
}
Я надеялся найти более простой / простой способ выполнить эту же задачу, поскольку передача строки в массив неэффективна и повторно создает строку несколько раз. Может кто-нибудь объяснить лучшую альтернативу, которая будет показывать отдельные слова строки за строкой в консоли?
Спасибо