例如,我有这个多维数组:
MyArray[('A', 40, true), ('B', 20, false), ('C', 55, true), ('D', 17, true)]
我想实现一个自定义的 min() 和 max() 原型来获得 min 和 max 只有那些是“真的”......有什么技巧吗?我一直在考虑使用 .map() 来提取某个属性,但是如何检查是否启用以提取由于 true/false 属性。
准确地说,我做了:
var MyArray = [];
MyArray.push( {
name: 'A',
valueA: 40,
valueB: 36,
enabled: true
});
MyArray.push( {
name: 'B',
valueA: 20,
valueB: 18,
enabled: false
});
MyArray.push( {
name: 'C',
valueA: 55,
valueB: 75,
enabled: true
});
.
.
.
这就是为什么我正在寻找状态为真的最大值和最小值,不包括那些为假的......
我试图实现:
Array.minElement = function(array, prop) {
return Math.min.apply(Math,
array.filter(function(arr) { return arr['enabled']; })
.map(function(arr) { return arr[prop]; })
);
}
Array.maxElement = function(array, prop) {
return Math.max.apply(Math,
array.filter(function(arr) { return arr['enabled']; })
.map(function(arr) { return arr[prop]; })
);
}
所以我应该像 Array.minElement(MyArray, 'valueA') 一样调用以获得最小值,但看起来它不起作用....它应该返回最小值...
我在这里做错了什么?...
非常感谢 干杯路易吉