js如何查找json數(shù)據(jù)中的最大值和最小值方法
js查找json數(shù)據(jù)中的最大值和最小值
js操作數(shù)組的方式有很多種,查找json數(shù)據(jù)中的最大值和最小值也是經(jīng)常用到,那么接下來就介紹2種方式來實(shí)現(xiàn)。
先準(zhǔn)備好json數(shù)據(jù),根據(jù)數(shù)組中的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對(duì)象來獲取最大值和最小值
1. 獲取最大值:
var max = Math.max.apply(Math, array.map(function(o) {
?? ?return o.age;
}))
console.log(max);// 402. 獲取最小值:
var min = Math.min.apply(Math, array.map(function(o) {
?? ?return o.age;
}))
console.log(min);// 2使用for循環(huán)來獲取最大值和最小值
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);// 402. 獲取最小值:
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
獲取最大值和最小值返回對(duì)應(yīng)的json數(shù)據(jù)
1. 獲取含有最大值的數(shù)據(jù):
var maxAgeArr = arr.filter(item=>item.age==max);
console.log(maxAgeArr);//[{name:'張三2',age:40},{name:'張三3',age:40}]2. 獲取含有最小值的數(shù)據(jù):
var minAgeArr = arr.filter(item=>item.age==min);
console.log(minAgeArr);//[{name:'張三5',age:2},{name:'張三6',age:2}]用reduce()獲取JSON中某個(gè)字段值最大的項(xiàng)
需求
獲取JSON中value值最大的項(xiàng)
[{
value: 1
},{
value: 2
},{
value: 3
}]語法
array.reduce(callback[, initialValue])
| 參數(shù) | 說明 |
|---|---|
| array | 必需。數(shù)組對(duì)象 |
| callback | 必需。一個(gè)接受最多四個(gè)參數(shù)的函數(shù)。對(duì)于數(shù)組中的每個(gè)元素,reduce 方法都會(huì)調(diào)用 callback函數(shù)一次。 |
| initialValue | 可選。如果指定 initialValue,則它將用作初始值。第一次調(diào)用 callback 函數(shù)會(huì)將此值作為參數(shù)。 |
返回值
通過最后一次調(diào)用回調(diào)函數(shù)獲得的累積結(jié)果。
回調(diào)函數(shù)語法
function callbackfn(previousValue, currentValue, currentIndex, array)
| 參數(shù) | 說明 |
|---|---|
| previousValue | 通過上一次調(diào)用回調(diào)函數(shù)獲得的值。如果向 reduce 方法提供 initialValue,則在首次調(diào)用函數(shù)時(shí),previousValue 為 initialValue。 |
| currentValue | 當(dāng)前數(shù)組元素的值。 |
| currentIndex | 當(dāng)前數(shù)組元素的數(shù)字索引。 |
| array | 包含該元素的數(shù)組對(duì)象。 |
示例:
let maxValue = data.reduce((prev, cur) => {
return prev.value > cur.value ? prev : cur
})
// maxValue = { value:3 }總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
IScroll5 中文API參數(shù)說明和調(diào)用方法
IScroll是移動(dòng)頁面上被使用的一款仿系統(tǒng)滾動(dòng)插件。IScroll5相對(duì)于之前的IScroll4改進(jìn)了許多,使得大家可以更方便的定制所需的功能了。2016-05-05
使用JavaScript實(shí)現(xiàn)輪播圖效果
這篇文章主要為大家詳細(xì)介紹了使用JavaScript實(shí)現(xiàn)輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
分享JavaScript監(jiān)聽全部Ajax請(qǐng)求事件的方法
最近在做一個(gè)小項(xiàng)目,引入了第三方j(luò)s文件,這個(gè)文件會(huì)調(diào)用XMLHttpRequest向服務(wù)器發(fā)送 Ajax請(qǐng)求,但是我有需要監(jiān)聽其Ajax請(qǐng)求的某些事件,以便額外地執(zhí)行其他腳本。于是稍微看了看監(jiān)聽 Ajax請(qǐng)求的事件方法,在這里分享給大家。有需要的朋友們可以參考借鑒。2016-08-08
JS辨別訪問瀏覽器判斷是android還是ios系統(tǒng)
掃描二維碼之后自動(dòng)分辨出是android還是ios系統(tǒng),因此就要用JS辨別訪問瀏覽器針對(duì)于不同的系統(tǒng)進(jìn)行不同的下載,需要的朋友可以參考下2014-08-08

