Я создаю интернет-магазин, где клиенты могут выбирать различные элементы и настраивать их в разных цветах. При оформлении заказа я хотел бы сгруппировать их в первую очередь по описанию товара, а затем разделить возвращенные группы на другие группы цветов.Использование groupBy рекурсивно в коллекции backbone.js
Я, похоже, не могу сделать это рекурсивно. Это то, что я до сих пор, чтобы вернуть группы элементов
var groupedItems = this.collection.groupBy(function(model){ return model.get('description');});
Как я мог запустить его снова, чтобы принять этот вывод и группу по цвету? Думаю, мне, возможно, придется снова включить вывод в коллекцию?
Любая помощь очень ценится
Функциональность группы BaseBy является просто прокси-сервером [groupby] (http://underscorejs.org/#groupBy), поэтому вы используете это. Что-то вроде 'var groupedColours = _.groupBy (groupedItems, function (item) {return item.get ('color');}, this);' – Jack
Спасибо за ответ @Jack. Ты поставил меня на правильный путь, и теперь у меня есть что-то, что работает! Это код, к которому я пришел. 'var finalGroupedArray = []; var groupedItems = this.collection.groupBy (функция (модель) {return model.get ('description');}); var count = 0; для (описание var в groupedItems) { var groupedColours = _.groupBy (groupedItems [Object.keys (groupedItems) [count]], function (item) {return item.get ('color');}, this); finalGroupedArray.push (groupedColours); count ++; } ' – moleboy
Рад помочь, хотя, я думаю, вы забыли отправить код, на который вы пришли. – Jack