乘积/乘法NSMutableArray值

时间:2013-12-21 13:03:07

标签: ios objective-c cocoa-touch

我有一个NSMutableArray,我需要制作其中所有数字的产品。 我只是无法理解该怎么做。 PS。我对Objective-c很新,所以要尽可能清楚。 感谢的

4 个答案:

答案 0 :(得分:2)

是的,你也可以这样做..

int result=1;
NSMutableArray *array=[[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4", nil];
for (int i=0; i<[array count]; i++) {
result*=[[array objectAtIndex:i] integerValue];
}
NSLog(@"%d     ",result);

答案 1 :(得分:0)

H2CO3是对的。为了完整起见,试试

NSNumber * sum = [numArray valueForKeyPath:@"@sum.self"];

其中numArray是你的数组。

答案 2 :(得分:0)

您可以查看NSExpression类,它非常强大,您可以根据自己的要求进行自定义。它还支持许多内置函数,例如:

NSArray *nums = @[@1, @2, @3, @4, @5];
NSExpression *expression = [NSExpression expressionForFunction:@"sum:" arguments:@[[NSExpression expressionForConstantValue:nums]]];
id result = [expression expressionValueWithObject:nil context:nil];

答案 3 :(得分:0)

假设我们正在使用int值......

int sum = 1;
for (NSNumber *num in someArray) {
    sum *= [num intValue];
}
NSLog(@"%d", sum);

intintValue可以轻松替换为doubledoubleValue或任何适合您需要的内容。 someArray是值数组的名称。


但是......如果...问题措辞不当而且我们都误解了,你需要一个新的数组,其索引包含两个其他数组中相同索引处对象值的乘积,那么你'重新寻找更像这样的东西:

NSMutableArray *productArray = [NSMutableArray array];
for(int i=0; i<[arr1 count]; ++i) {
    int product = [[arr1 objectAtIndex:i] intValue] * [[arr2 objectAtIndex:i]
        intValue];
    [productArray addObject: [NSNumber numberWithInt: product]];
}