js操作数组的方式有很多种,查找json数据中的最大值和最小值也是经常用到,那么接下来就介绍2种方式来实现。
先准备好json数据,根据数组中的age值比较大小:
var array = [
{name:'张三1',age:10},
{name:'张三2',age:40},
{name:'张三3',age:40},
{name:'张三4',age:33},
{name:'张三5',age:2},
{name:'张三6',age:2},
]
使用Math对象来获取最大值和最小值
1. 获取最大值:
var max = Math.max.apply(Math, array.map(function(o) {
return o.age;
}))
console.log(max);// 40
2. 获取最小值:
var min = Math.min.apply(Math, array.map(function(o) {
return o.age;
}))
console.log(min);// 2
使用for循环来获取最大值和最小值
1. 获取最大值:
var max = arr[0].age;
for (var i = 1; i < arr.length; i++) {
max = max < arr[i].age ? arr[i].age : max;
}
console.log(max);// 40
2. 获取最小值:
var min = arr[0].age;
for (var i = 1; i < arr.length; i++) {
min = min > arr[i].age ? arr[i].age : min;
}
console.log(min);// 2
获取最大值和最小值返回对应的json数据
1. 获取含有最大值的数据:
var maxAgeArr = arr.filter(item=>item.age==max);
console.log(maxAgeArr);//[{name:'张三2',age:40},{name:'张三3',age:40}]
2. 获取含有最小值的数据:
var minAgeArr = arr.filter(item=>item.age==min);
console.log(minAgeArr);//[{name:'张三5',age:2},{name:'张三6',age:2}]