复杂对象数组的排序

(注:result为待排序数组,newResult为排序后的数组)

NSArray *newResult =

[result sortedArrayUsingComparator:^(id obj1,id obj2)

{

NSDictionary *dic1 = (NSDictionary *)obj1;

NSDictionary *dic2 = (NSDictionary *)obj2;

NSNumber *num1 = (NSNumber *)[dic1 objectForKey:@"value"];

NSNumber *num2 = (NSNumber *)[dic2 objectForKey:@"value"];

if ([num1 floatValue] > [num2 floatValue])

{

return (NSComparisonResult)NSOrderedAscending;

}

else

{

return (NSComparisonResult)NSOrderedDescending;

}

return (NSComparisonResult)NSOrderedSame;

}];

复杂对象数组的排序

时间: 2024-08-13 21:52:11

复杂对象数组的排序的相关文章

对象数组如何排序?

class Program { class Data : IComparable { public string name; //这些必需要加public,否则会出错的 public int age; public void input() { Console.WriteLine("输入姓名"); name = Console.ReadLine(); Console.WriteLine("输入年龄"); age = Convert.ToInt32(Console.R

给object数组进行排序(排序条件是每个元素对象的属性个数)

从汤姆大叔的博客里看到了6个基础题目:本篇是第3题 - 给object数组进行排序(排序条件是每个元素对象的属性个数) 解题关键: 1.Array.sort的用法 2.object的属性数量的统计 解点1:Array.sort的用法 Array.sort可以为数组指定一个排序规则,一般用如下格式进行指定,代码如下: var arr = [10,6,0,4]; console.log( arr.sort() ); //按字符排序 0,10,4,6 console.log( arr.sort( fu

根据对象的某一属性对数组进行排序

//根据对象的某个属性对数组进行排序 function compar(attribute){ return function (obj1,obj2){ if(obj1.attribute > obj2.attribute){ return -1; }else{ return 1; } } };

JS 对象数组Array 根据对象object key的值排序sort,很风骚哦

有个js对象数组 var ary=[{id:1,name:"b"},{id:2,name:"b"}] 需求是根据name 或者 id的值来排序,这里有个风骚的函数 函数定义: function keysrt(key,desc) {   return function(a,b){     return desc ? ~~(a[key] < b[key]) : ~~(a[key] > b[key]);   } } 使用: var ary=[{id:1,nam

用js 对拥有多个对象的数组进行排序

我们想要根据某个对象属性对数组进行排序.而传递给数组sort()方法的比较函数要接收两个参数,即要比较的值.可是,我们需要一种方式来指明按照哪个属性来排序.要解决这个问题,可以定义一个函数,它接收一个属性名,然后根据这个属性名来创建一个比较函数,下面就是这个函数的定义. 1 function createComparisonFunction(propertyName) { 2 return function (object1, object2) { 3 var value1 = object1[

3、假设有一个对象数组,想根据某个对象属性对数组进行排序时

function createComparisonFunction(propertyName){ return function(object1,object2){ var value1=object1[propertyName]; var value2=object2[propertyName]; if(value1<value2){ return -1 }else if(value1>value2){ return 1 }else { return 0; } }} 例如:var data=

JS中:json对象数组按对象属性排序

var array = [ {name: 'a', phone: 1}, {name: 'b', phone: 5}, {name: 'd', phone: 3}, {name: 'c', phone: 4} ] array.sort(getSortFun('desc', 'phone')); function getSortFun(order, sortBy) { var ordAlpah = (order == 'asc') ? '>' : '<'; var sortFun = new F

【OC加强】枚举介绍、数组的排序、对象的排序、如何利用block排序以及一些数据类型知识

(1)枚举的定义和元素调用 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSArray *[email protected][@"one",@"two",@"three"]; //把数组变成枚举 NSEnumerator *enum1=[arr1 objectEnumerator]; NSS

JavaScript实现对象数组按不同字段排序

如果有一个对象数组,我们想要依据某个对象属性对数组进行排序.而传递给数组sort()方法的比較函数要接收两个參数,即要比較的值.但是.我们须要一种方式来指明依照哪个属性来排序.要解决问题,能够定义一个函数,它接收一个属性名,然后依据这个属性名来创建一个比較函数,以下就是这个函数的定义. function createComparionFun(propertyName) { return function(object1,object2) { var value1=object1[property