Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.03.2018, 08:44
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Как правильно разделить массив?
Добрый день. У меня есть массив вида:
var arr = ['вася на пеньке, дупле:2:шт~рыбка соленая, сухая:10:кг~вода озаренная, темная:2:литра'];

Нужно его разделить на составляющие, я делаю так:
var str_arr = arr.toString().split('~');

получаю:
0:"вася на пеньке, дупле:2:шт"
1:"рыбка соленая, сухая:10:кг"
2:"вода озаренная, темная:2:литра"

вроде все хорошо, осталось отделить значения от цифр, повторяю:
var str_arr_2 = str_arr.toString().split(':');

но на выходе получаю не совсем то:
0:"вася на пеньке, дупле"
1:"2"
2:"шт,рыбка соленая, сухая"
3:"10"
4:"кг,вода озаренная, темная"
5:"2"
6:"литра"

Как сделать чтобы шт,кг,литры были отдельно? разделитель между ними ':' и '~', но не пойму как правильно написать чтобы не появлялась строка вида "шт, следующая строка..."

Полный вид:
var arr = ['вася на пеньке, дупле:2:шт~рыбка соленая, сухая:10:кг~вода озаренная, темная:2:литра'];
var str_arr = arr.toString().split('~');
var str_arr_2 = str_arr.toString().split(':');
console.log(str_arr_2);

Последний раз редактировалось Artur_Hopf, 29.03.2018 в 08:56.
Ответить с цитированием
  #2 (permalink)  
Старый 29.03.2018, 09:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Artur_Hopf,
какой результат нужен?
Ответить с цитированием
  #3 (permalink)  
Старый 29.03.2018, 09:28
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

рони,
вот такой:
0:"вася на пеньке, дупле"
1:"2"
2:"шт"
3:"рыбка соленая, сухая"
4:"10"
5:"кг"
6:"вода озаренная, темная"
5:"2"
6:"литра"
Ответить с цитированием
  #4 (permalink)  
Старый 29.03.2018, 09:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Artur_Hopf,
<script>
var arr = ['вася на пеньке, дупле:2:шт~рыбка соленая, сухая:10:кг~вода озаренная, темная:2:литра'];
var out = arr[0].split(/[:~]/);
document.write(JSON.stringify(out))
  </script>
Ответить с цитированием
  #5 (permalink)  
Старый 29.03.2018, 09:51
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

рони,
Спасибо большое
Ответить с цитированием
  #6 (permalink)  
Старый 29.03.2018, 10:27
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Что-то мне кажется, что результат должен быть таким примерно...
var arr = ['вася на пеньке, дупле:2:шт~рыбка соленая, сухая:10:кг~вода озаренная, темная:2:литра'];
var out = arr[0].split('~');
for(var i= 0; i<out.length; i++){
   out[i] = out[i].split(':');
}
alert(JSON.stringify(out));
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Константный массив, как приватное поле класса AndreyMG Общие вопросы Javascript 0 13.05.2016 17:31
Json и как его правильно кушать (Help plz!) JohnyVoo Angular.js 2 04.05.2016 19:55
Как в шаблоне диррективы узнать массив это или строка? delias Angular.js 1 18.03.2014 07:33
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14