js如何查找json数据中的最大值和最小值方法

发布时间:2023-4-18 09:39

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}]

用reduce()获取JSON中某个字段值最大的项

需求

获取JSON中value值最大的项

[{
  value: 1
},{
  value: 2
},{
  value: 3
}]

语法

array.reduce(callback[, initialValue])
参数说明
array必需。数组对象
callback必需。一个接受最多四个参数的函数。对于数组中的每个元素,reduce 方法都会调用 callback函数一次。
initialValue可选。如果指定 initialValue,则它将用作初始值。第一次调用 callback 函数会将此值作为参数。

返回值

通过最后一次调用回调函数获得的累积结果。

回调函数语法

function callbackfn(previousValue, currentValue, currentIndex, array)
参数说明
previousValue通过上一次调用回调函数获得的值。如果向 reduce 方法提供 initialValue,则在首次调用函数时,previousValue 为 initialValue。
currentValue当前数组元素的值。
currentIndex当前数组元素的数字索引。
array包含该元素的数组对象。

示例:

let maxValue = data.reduce((prev, cur) => {
  return prev.value > cur.value ? prev : cur
})
// maxValue = { value:3 }
Vue3学习笔记之依赖注入Provide/Inject 网站建设

Vue3学习笔记之依赖注入Provide/Inject

Provide / Inject 通常,当我们需要从父组件向子组件传递数据时,我们使用 props。想象一下这样的结构:有一些深度嵌套的组件,而深层的子组件只需要父组件的部分内容。在这种情况下,如果...
Vue3全局实例上挂载属性方法案例讲解 网站建设

Vue3全局实例上挂载属性方法案例讲解

在大多数开发需求中,我们有时需要将某个数据,或者某个函数方法,挂载到,全局实例身上,以便于,在项目全局的任何位置都能够调用其方法,或读取其数据。 在Vue2 中,我们是在 main.js 中 直...