gpt4 book ai didi

ios - 对 NSArray 的 NSArray 中的 objectAtIndex 值求和或将值与 NSDictionary 中的键的现有值相加

转载 作者:行者123 更新时间:2023-11-29 02:09:31 26 4
gpt4 key购买 nike

我需要的任何一个解决方案。建议我最好的答案。

我有数百个这样的数组,这给了我最佳解决方案。我不喜欢嵌套 ForLoops

1。我需要通过 ObjectAtIndex : 0 对数组进行 Distinct Union,并将它们在 ObjectAtIndex : 1 中的值相加。

A--> [[1,"100.0"],[2,"100.0"],[2,"100.0"],[3,"100.0"],[4,"100.0"],[3 ,"100.0"],[4,"100.0"]]

B--> [[1,250],[2,250],[1,250],[3,"200.2"],[1,"200.2"],[4,"200.2"],[1,"200.2"],[4,"200.2"]]

我需要这样A--> [[1,"100.0"],[2,"200.0"],[3,"200.0"],[4,"200.0"]]

2。我必须在字典中设置Object A和B数组。但是如果字典中存在键,则将该值与现有值相加。

{

A = {
1 = 100;
2 = 100;
3 = 100;
4 = 100;
};

B = {
1 = 250;
2 = 250;
3 = "200.2";
4 = "200.2";
};

}

喜欢

NSArray* uniqueValues = [data valueForKeyPath:[NSString stringWithFormat:@"@distinctUnionOfObjects.%@", @"self"]];

最佳答案

NSArray* A = @[@[@1, @100.0],@[@2, @100.0],@[@3, @100.0],@[@1, @100.0],@[@1, @100.0]];

NSMutableDictionary* sum = [NSMutableDictionary new];
for (NSArray* item in A)
{
id key = item[0];
if (sum[key] == nil)
{
sum[key] = item[1];
}
else
{
sum[key] = @([sum[key] floatValue] + [item[1] floatValue]);
}
}

NSLog(@"%@", sum.description);

输出:

3 = 100;
1 = 300;
2 = 100;

关于ios - 对 NSArray 的 NSArray 中的 objectAtIndex 值求和或将值与 NSDictionary 中的键的现有值相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29432795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com