這裏是我的陣列在JavaScript的數組查找ID爲對象最大值對象
myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'},etc.]
我想找到ID對象的JavaScript對象的數組以上。
一般我用grep()
用於查找數組這樣
var result = $.grep(myArray, function(e){ return e.id == 73; });
但在這種情況下,我需要提供ID值,我想選擇。
這裏是我的陣列在JavaScript的數組查找ID爲對象最大值對象
myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'},etc.]
我想找到ID對象的JavaScript對象的數組以上。
一般我用grep()
用於查找數組這樣
var result = $.grep(myArray, function(e){ return e.id == 73; });
但在這種情況下,我需要提供ID值,我想選擇。
myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}];
var maxid = 0;
myArray.map(function(obj){
if (obj.id > maxid) maxid = obj.id;
});
alert(maxid);
這會給你數組中對象的最大值。
然後你就可以使用grep來獲得相關的對象:
var maxObj = $.grep(myArray, function(e){ return e.id == maxid; });
問題指出,他希望找到對象以最大的ID,而不僅僅是最大的ID ...
var myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}];
var max = myArray.reduce(function(prev, current) {
if (+current.id > +prev.id) {
return current;
} else {
return prev;
}
});
// max == {'id':'73','foo':'bar'}
function reduceBy(reducer, acc) {
return function(by, arr) {
return arr[arr.reduce(function(acc, v, i) {
var b = by(v);
return reducer(acc[0], b) ? [b, i] : acc;
}, acc || [by(arr[0]), 0])[1]];
};
}
var maximumBy = reduceBy(function(a,b){return a<b;});
var myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}];
console.log(maximumBy(function(x){
return parseInt(x.id,10)
}, myArray)); // {'id':'73','foo':'bar'}
var max = 0;
var myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}]
var maxEle = myArray.map(function(ele){ if(ele.id>max){ max=ele} });
地圖是一個函數,它遍歷陣列的Elemen並執行特定的操作。
嘗試不使用jQuery。 – Bergi