Разделение по первому появлению запятой в javascript

У меня есть сообщение вида:

var message = 'hello.there, "how are you, doing" '

Что нужно разделить по первому вхождению ',', чтобы у меня было два объекта, а именно 'hello.there'(param 1) и "how are you, doing(param 2)", так что param 2 должен быть списком arguments(length=1), а пробелы должны быть сохранены?

Я пробовал что-то вроде var param2 = message.split(/,(.+)/)[1]

но это приведет к тому, что param2 будет строкой, а не списком аргументов.

"should be a list of arguments...", поясните, пожалуйста, в этой части, что это за список и аргументы?
Calvin Nunes 25.07.2018 15:43

Чтобы добавить еще один пример Допустим, у меня есть сообщение var mess = hello.there, "how are you, doing", 12, тогда должно произойти разделение, чтобы полученный параметр 2 был списком, состоящим из `как дела, дела и 12 длиной 2, а не 3.

user3628645 25.07.2018 17:19
Поведение ключевого слова "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
2
97
2

Ответы 2

Просто найдите первую запятую, а затем подстановку:

const pos = message.indexOf(",");
const param1 = message.substr(0, pos);
const param2 = message.substr(pos);

Или, если param2 должен быть массивом других строк, разделенных запятой:

const [param1, ...param2] = message.split(",");

Вам нужно будет найти индекс первого ,, нарезать строку по этому индексу, а затем разделить второй фрагмент на ,:

var i = message.indexOf(',');    //find the index of the first ,
var param1 = message.slice(0,i);    //param1 is the slice from 0 to i
var param2 = message.slice(i+1).split(',');    //param2 is the slice from i+1 splitted at ,

Кстати, есть и другие способы разбиения массива по первому вхождению токена. Это сообщение SO может вас заинтересовать.

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