Я пытаюсь взять строку с пробелами и отображать каждое слово построчно в выводе консоли.
Мой код javascript принимает строку и создает массив индексов, где пробелы идентифицируются с помощью операции indexOf(). Затем это передается через цикл среза, который вычитает различные индексы, чтобы получить длину строки для среза и индекс пробела, чтобы найти ее в существующей строке. Результатом является окончательный файл console.info, и он, кажется, делает то, что мне нужно, даже при передаче случайных строк.
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.info("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.info("Array Sentence:\n", arraysent)
console.info("space index length:\n", sentence.length) //check array length
console.info("space index array:\n", sentence) //display array with "space" indexes
console.info("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.info(slicesent);
}
Я надеялся найти более простой/более простой способ выполнить ту же задачу, поскольку передача строки в массив неэффективна и повторно создает строку несколько раз. Может ли кто-нибудь объяснить лучшую альтернативу, которая будет отображать отдельные слова строки построчно в консоли?
Спасибо
Вам нужно только вывести слова? Что не так с sentence
Массивом индексов? Иначе это просто fourStr.split(' ').forEach(word => console.info(word))
@MarkMeyer Вопрос неясен, но "показать отдельные слова строки построчно в консоли"
Да, @Kaiido, я получил эту часть (вы можете просто присоединиться console.info(fourStr.split(" ").join('\n'))
), просто кажется, что там так много другого кода, я думал, что мы что-то упустили.
Спасибо @Kalido. Это именно то, чего я надеялся достичь.
Это буквально сделано String.split()
function logWordsBySpaces(str){
let arr = str.split(" ");
arr.forEach(function(a){ console.info(a); })
}
logWordsBySpaces("Karma karma karma karma karma chameleon!")
Вы должны использовать .split
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;
const result = [myStr, twoStr, stringadd, threeStr, fourStr].map(string => string.split(sp));
console.info(result);
Пробовали
console.info(fourStr.split(" "))
?