ios 快速获取数组中的最大值、最小值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios 快速获取数组中的最大值、最小值相关的知识,希望对你有一定的参考价值。

参考技术A 在开发过程中,经常会用到NSArray,然后找出数组中的最大值、最小值,很多时候我们一般用for循环来封装一个算法求最值,虽然可以但是还是不够快速。其实Apple底层可我们封装了一个十分好用的API,可以通过valueForKeyPath方法来设置你想要获取的一些数组。

NSMutableArray* array = [NSMutableArray array];

for (int i = 0; i < 10; i++)

    CGFloat num = arc4random() % 100 + 1;

    [array addObject:[NSNumber numberWithFloat:num]];



CGFloat maxValue = [[array valueForKeyPath:@"@max.floatValue"] floatValue];

CGFloat minValue = [[array valueForKeyPath:@"@min.floatValue"] floatValue];

min、max是NSArray的私有属性,通过.语法是拿不到的,会报错的。类似这种私有属性还有

@”@avg.floatValue” (获取平均值), 

@”@count.floatValue”(获取数组大小) 

@"@sum.floatValue"(求和)

还可以去重

NSArray *array = @[@"a", @"wechat", @"qq", @"msn", @"wechat"];

NSArray *deleltNewA = [array valueForKeyPath:@"@distinctUnionOfObjects.self"];

js中如何快速获取数组中的最大值最小值

1 var arr=[1,2,3,5];
2 alert(Math.max.apply(null, arr));//最大值
3 alert(Math.min.apply(null, arr));//最小值

多维数组可以这么修改:

1 var arr=[1,2,3,[5,6],[1,4,8]];
2 var arr2=arr.join(",").split(",");//转化为一维数组
3 alert(Math.max.apply(null,arr2));//最大值
4 alert(Math.min.apply(null,arr2));//最小值

 

以上是关于ios 快速获取数组中的最大值、最小值的主要内容,如果未能解决你的问题,请参考以下文章

js中如何快速获取数组中的最大值最小值

javascript如何获取数组中的最大值和最小值

获取对象属性中的最小值/最大值的快速方法

Java中如何获取一维数组最小值

iOS 中通过kvc 获取数组的均值求和最大最小值等

JS获取数组最大值、最小值及长度的方法