JQuery / Javascript несколько комбинаций массивов
2427 просмотра
2 ответа
Я пытался найти решение этой проблемы безрезультатно. Идея того, чего я пытаюсь достичь, состоит в том, чтобы найти все уникальные комбинации нескольких списков. Итак, допустим, у меня есть 3 списка флажков (но это неизвестное число в реальном приложении), Цвет, Размер, Размер упаковки. Элементы в списке будут незаполненными.
[0] => ['blue', 'green']
[1] => ['small', 'medium', 'large']
[2] => ['Pack Of 6', 'Pack Of 8']
Я хочу получить « Синий, маленький, пакет из 6 », « Синий, средний, пакет из 6 », « Синий, большой, пакет из 6 », « Синий, маленький, пакет из 8 », « Синий, средний, Упаковка из 8 "и т. Д. Порядок не важен, но было бы неплохо, чтобы он был логически сгруппирован.
Я уже вытащил списки в массив с помощью jQuery:
options = [];
jQuery('.option-types').each(function(){
opts = [];
jQuery('input:checked', this).each(function(){
opts.push(jQuery(this).next().text());
});
options.push(opts)
});
Если существует рекурсивный функциональный путь для ответа на этот вопрос, который был бы идеальным, как я сказал, количество списков может быть любым, а также содержимое списков.
Надеюсь, вы, парни и девушки, можете помочь.
Ура - Дэн
Автор: dan richardson Источник Размещён: 12.11.2019 09:35Ответы (2)
7 плюса
Это должно работать :)
var recursiveSearch;
var possibilities = [];
recursiveSearch = function (text, depth )
{
text = text || "";
depth = depth || 0;
for ( var i = 0; i < options[depth].length; i++ )
{
// is there one more layer?
if ( depth +1 < options.length )
// yes: iterate the layer
recursiveSearch ( text + ((text=="") ? "" : " ") + options[depth][i] , depth +1 );
else
// no: this is the last layer. we add the result to the array
possibilities.push ( text + options[depth][i] );
}
}
recursiveSearch ( );
с вашим массивом
[0] => ['blue', 'green']
[1] => ['small', 'medium', 'large']
[2] => ['Pack Of 6', 'Pack Of 8']
результат будет что-то вроде этого:
- синий маленький пакет из 6
- синий маленький пакет из 8
- синий средний пакет из 6
- ...
0 плюса
Вы можете изменить исходный код Java со страницы http://www.1your.com/drupal/FullCodeFindingAllStringCombinationUsingRecursion для JavaScript - идея должна быть проста для понимания, даже если вы не очень знакомы с Java. Я сомневаюсь, что есть готовое решение для этого.
Автор: simon Размещён: 28.10.2009 10:43Вопросы из категории :
- javascript Как определить, какой из указанных шрифтов был использован на веб-странице?
- javascript Валидация клиентской стороны ASP.Net
- javascript Длина объекта JavaScript
- javascript Получение текста из выпадающего списка
- javascript Скрипт входа со скрытыми кнопками
- javascript Как автоматически изменить размер текстовой области с помощью Prototype?
- javascript Удаление элементов с помощью Array.map в JavaScript
- javascript Прокрутка переполненных DIV с помощью JavaScript
- javascript API Карт Google - проблемы с классом GLatLngBounds
- javascript Проверка десятичных чисел в JavaScript - IsNumeric ()
- jquery Экранирование строк HTML с помощью jQuery
- jquery Как сравнить HTML-сущность с JQuery
- jquery Есть ли функция "существует" для jQuery?
- jquery Как удалить все параметры в окне выбора, а затем добавить один вариант и выбрать его с помощью jQuery?
- jquery Получение идентификатора элемента, который вызвал событие
- jquery Как получить результат из модального диалога в JQuery
- jquery Удалите все классы, начинающиеся с определенной строки.
- jquery Как мне остановить эффект в jQuery
- jquery Как показать загрузочный счетчик в jQuery?