Склеить несколько массивов в цикле
Добрый день, есть скрипт:
for (var i = 0; i < other_arr.length; i++) { var $other_name = other_arr[i].split('|')[0], $other_min = other_arr[i].split('|')[1], $other_max = other_arr[i].split('|')[2], $product_arr = new Array(); $('.product').each(function(){ $product_arr.push( $(this).find('[data-filter_name="'+$other_name+'"]').data('filter_name') + '|' + $(this).find('[data-filter_name="'+$other_name+'"]').data('filter_val').split(' ')[0].replace(',', '.') ); }) } Он должен собирает технически характеристики товара в один массив, но по факту массив получается не один, а по одному для каждого технического параметра. Например (результат выполнения console.log($product_arr)): (4) ["Гарантия|2", "Гарантия|1", "Гарантия|3", "Гарантия|1"] (4) ["Мощность|10", "Мощность|5", "Мощность|23", "Мощность|10"] А мне нужно что бы было, вот так: (8) ["Гарантия|2", "Гарантия|1", "Гарантия|3", "Гарантия|1", "Мощность|10", "Мощность|5", "Мощность|23", "Мощность|10"] Подскажите пожалуйста как это сделать |
smart-create,
concat |
рони, читал, знаю, использую в работе, НО или я не понимаю как правильно его использовать, или это все таки не то что нужно. Объясню почему - у меня нет 2 определенных массивов, например:
arr_1 = ["Гарантия|2", "Гарантия|1", "Гарантия|3", "Гарантия|1"]; arr_1 = ["Мощность|10", "Мощность|5", "Мощность|23", "Мощность|10"]; В таком случае конечно я могу использовать .concat() newArr = arr_1.concat(arr_2) И тогда, да я получу ["Гарантия|2", "Гарантия|1", "Гарантия|3", "Гарантия|1", "Мощность|10", "Мощность|5", "Мощность|23", "Мощность|10"] НО у меня ведь нет arr_1 и arr_2 У меня есть только один массив $product_arr который формируется вот этим скриптом: for (var i = 0; i < other_arr.length; i++) { var $other_name = other_arr[i].split('|')[0], $other_min = other_arr[i].split('|')[1], $other_max = other_arr[i].split('|')[2], $product_arr = new Array(); $('.product').each(function(){ $product_arr.push( $(this).find('[data-filter_name="'+$other_name+'"]').data('filter_name') + '|' + $(this).find('[data-filter_name="'+$other_name+'"]').data('filter_val').split(' ')[0].replace(',', '.') ); }) } Как я и говорил в результате его выполнения и выводе через console.log(), получается вот это: (4) ["Гарантия|2", "Гарантия|1", "Гарантия|3", "Гарантия|1"] (4) ["Мощность|10", "Мощность|5", "Мощность|23", "Мощность|10"] Как я в этом случае могу использовать .concat()? newArr = $product_arr.concat($product_arr) Как вы понимаете с этой затеи нечего не выйдет P.S. масивов в результате выполнения скрипта может быть и не 2, может быть и 6 и 10 и 15, в зависимости от товара, например: (4) ["Гарантия|2", "Гарантия|1", "Гарантия|3", "Гарантия|1"] (4) ["Мощность|10", "Мощность|5", "Мощность|23", "Мощность|10"] (4) ["Напор|2", "Напор|1", "Напор|3", "Напор|1"] (4) ["Высота подачи|10", "Высота подачи|5", "Высота подачи|23", "Высота подачи|10"] (4) ["...", "...", "...", "..."] (4) ["...", "...", "...", "..."] P.P.S А нужно что бы было так: (20) ["Мощность|10", "Мощность|5", "Мощность|23", "Мощность|10", "Напор|2", "Напор|1", "Напор|3", "Напор|1", "Высота подачи|10", "Высота подачи|5", "Высота подачи|23", "Высота подачи|10"], "...", "...", "...", "...", "...", "...", "...", "..."] |
smart-create,
не понимаю |
рони, ок) есть сайт
зайдите пожалуйста на него и откройте консоль потяните за любой из ползунков слева и нажмите "ДА" ![]() В консоли вы увидите что выводиться 2 массива, они содержат в себе технические параметры всех товаров на странице (см. изображение) ![]() |
то что выводится это результат работы скрипта:
for (var i = 0; i < other_arr.length; i++) { var $other_name = other_arr[i].split('|')[0], $other_min = other_arr[i].split('|')[1], $other_max = other_arr[i].split('|')[2], $product_arr = new Array(); $('.product').each(function(){ $product_arr.push( $(this).find('[data-filter_name="'+$other_name+'"]').data('filter_name') + '|' + $(this).find('[data-filter_name="'+$other_name+'"]').data('filter_val').split(' ')[0].replace(',', '.') ); }) console.log($product_arr); } |
smart-create,
спасибо за подробности, но мне не осилить |
Мне нужно сделать так что бы массив который содержит в себе "гарантия, гарантия, гарантия" и массив "мощность, мощность, мощность", не были разделены, нужно что бы это был один большой массив
|
как я могу объяснит что бы было понятно?
Я понимаю что я напрягаю, но если вы уж тут находитесь, все равно проводите здесь время, а мне очнгь нужна помощь, я бьюсь уже 5 день..., может все таки поможете? |
Цитата:
|
Часовой пояс GMT +3, время: 13:48. |