У меня есть массив, который содержит это объекты:Merge одни и те же объекты внутри массива IOS
(
{
aOptns = (
);
fCustomDscnt = 0;
fPrcntDscnt = 0;
fPrice = 0;
fQty = 1;
iItemDayPriceId = 143;
iShiftId = 1;
sItemName = "";
sModifier = "";
},
{
aOptns = (
);
fCustomDscnt = 0;
fPrcntDscnt = 0;
fPrice = 0;
fQty = 1;
iItemDayPriceId = 143;
iShiftId = 1;
sItemName = "";
sModifier = "";
},
{
aOptns = (
);
fCustomDscnt = 0;
fPrcntDscnt = 0;
fPrice = 0;
fQty = 1;
iItemDayPriceId = 143;
iShiftId = 1;
sItemName = "";
sModifier = "";
},
{
aOptns = (
);
fCustomDscnt = 0;
fPrcntDscnt = 0;
fPrice = 0;
fQty = 1;
iItemDayPriceId = 112;
iShiftId = 1;
sItemName = "";
sModifier = "";
}
)
мне нужно объединить содержимое массива, если объекты являются одинаковыми и модифицировать объект внутри этого массива таким образом, что это должно быть так:
(
{
aOptns = (
);
fCustomDscnt = 0;
fPrcntDscnt = 0;
fPrice = 0;
fQty = 3;
iItemDayPriceId = 143;
iShiftId = 1;
sItemName = "";
sModifier = "";
},
{
aOptns = (
);
fCustomDscnt = 0;
fPrcntDscnt = 0;
fPrice = 0;
fQty = 1;
iItemDayPriceId = 112;
iShiftId = 1;
sItemName = "";
sModifier = "";
}
)
Как вы можете видеть, вход для объекта с iItemDayPriceId = 143 становится 1 только с fQty = 3.
Я попытался с помощью кода здесь: How to Find Duplicate Values in Arrays?
Но это только сравнение по 2 предмета за раз.
спасибо! Я решил свою проблему с вашей помощью! :) –
Нет проблем, но на самом деле не совсем - ваше требование состояло в том, чтобы мутировать данный массив, а не создавать новый. Я пересматриваю свой ответ, чтобы сделать это, хотя я не уверен, что это желательно –