Первое, что я пришёл в голову, это то, что вам нужно сначала отсортировать входные данные. потому что ваши данные (как указано в вопросе) не единственный возможный способ получения данных.
Вы можете иметь некоторые данные, такие как:
let array1 = [
{ "region": "NE", quantity: 25 },
{ "region": "NW", quantity: 21 },
{ "region": "Central", quantity: 20 },
{ "region": "SE", quantity: 43 },
{ "region": "SW", quantity: 18 },
]
, и в этом примере мы должны были собрать центральный и SW вместе, но не сортировать входные данные на первом месте приведут центральный и SW в разных массивах.
Итак, заключение. Я думаю, что это сработает:
var make = function( arr ) {
var res = [],
currentArr = [];
arr.forEach( v => {
sum += v.quantity;
if ( sum <= capacity ) {
currentArr.push( v );
} else {
res.push( currentArr );
currentArr = [ v ];
sum = v.quantity;
}
});
res.push( currentArr );
return res;
},
array1 = [
{ "region": "NE", quantity: 25 },
{ "region": "NW", quantity: 21 },
{ "region": "Central", quantity: 20 },
{ "region": "SE", quantity: 43 },
{ "region": "SW", quantity: 18 }
],
sum = 0,
result,
capacity = 50;
array1.sort( ( a, b ) => {
return a.quantity - b.quantity;
});
console.log( array1 );
result = make( array1 );
console.log( result );
Можно добавить "IPHONE_OPTIMIZE_OPTIONS =-skip-PNGs" к настройкам проекта для предотвращения искажения png, но быть осторожными с ним, Вы, возможно, должны были бы оптимизировать значок и Default.png отдельно затем.
Iphoneos-оптимизировать сценарий преобразовывает файлы PNG в нестандартный формат, который оптимизирован для дисплея на iPhone. Сценарий преобразует любые файлы с png расширением, которое он находит в Вашем комплекте приложений.
Я имел подобную проблему и решил ее путем предоставления моему файлу расширения _png (т.е. снабдил префиксом подчеркивание). iphoneos-оптимизируйте проигнорировал его и оставил его регулярным файлом PNG. Если можно иметь дело с ним тот путь, это, вероятно, намного более безопасно, чем слоняние без дела со сценариями сборки.
Это могло бы быть другой проблемой все вместе. Во многих случаях проблема имеет отношение к именованию и может быть решена очень легко.
чтение это: http://cocoapi.wordpress.com/2009/03/22/iphone-images-not-appearing-in-real-iphone-this-is-why/
При рассмотрении вывода сборки, Вы будете видеть, что шаг CompressResources запускает скрипт /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/iphoneos-optimize
. Это, кажется, просто сценарий оболочки, который выполняет pngcrush и компилирует plists в двоичный формат. Вы могли, вероятно, изменить этот сценарий для не выполнения pngcrush.
Обратите внимание, что кто-то в этом потоке заметил, что, если они не выполняли свой файл значка через pngcrush, он не обнаруживался по телефону.
Интересно, версия pngcrush в каталоге сценария имеет - аргумент iPhone. Кто-либо знает, стандартно ли это или что-то, что Apple просто поставляет с их сборкой его?