说我们有一个数组:
var antibiotics = [{
bacteria: "Mycobacterium tuberculosis",
penicillin: 800,
streptomycin: 5,
neomycin: 2,
gram: "negative"
}, {
bacteria: "Salmonella schottmuelleri",
penicillin: 10,
streptomycin: 0.8,
neomycin: 0.09,
gram: "negative"
}, {
bacteria: "Proteus vulgaris",
penicillin: 3,
streptomycin: 0.1,
neomycin: 0.1,
gram: "negative"
}, {
bacteria: "Klebsiella pneumoniae",
penicillin: 850,
gram: "negative"
}];
并且我们要查找数组中对象的所有数值属性的
min
和max
(此处为penicillin
,streptomycin
和neomycin
),假设值可以为空/不存在。如何从JavaScript中的对象数组聚合此类数据?
最佳答案
您可以使用Array.prototype.map()
提取所需的值,然后将其作为参数传递给Math.max()
或Math.min()
。
Math.max.apply(Math, values);