Лучший способ нарезать строку?

Я пытаюсь взять строку с пробелами и отображать каждое слово построчно в выводе консоли.

Мой код 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);
}

Я надеялся найти более простой/более простой способ выполнить ту же задачу, поскольку передача строки в массив неэффективна и повторно создает строку несколько раз. Может ли кто-нибудь объяснить лучшую альтернативу, которая будет отображать отдельные слова строки построчно в консоли?

Спасибо

Пробовали console.info(fourStr.split(" "))?

Mark 10.04.2019 03:55

Вам нужно только вывести слова? Что не так с sentence Массивом индексов? Иначе это просто fourStr.split(' ').forEach(word => console.info(word))

Kaiido 10.04.2019 03:57

@MarkMeyer Вопрос неясен, но "показать отдельные слова строки построчно в консоли"

Kaiido 10.04.2019 03:58

Да, @Kaiido, я получил эту часть (вы можете просто присоединиться console.info(fourStr.split(" ").join('\n'))), просто кажется, что там так много другого кода, я думал, что мы что-то упустили.

Mark 10.04.2019 04:00

Спасибо @Kalido. Это именно то, чего я надеялся достичь.

lucky 10.04.2019 06:07
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
5
66
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Это буквально сделано 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);

Другие вопросы по теме