我有像JSON一样的
var JObject = [
{
a:"A1",
b:100,
c:800
},
{
a:"B1",
b:300,
c:400
}
];
我需要来自此JSON的最大值...如果返回键和列索引
,则必须返回800答案 0 :(得分:1)
因为这是在d3中标记的。 我会给出一个d3答案。
下面的工作代码
var kary = [
{
a:"A1",
b:100,
c:800
},
{
a:"B1",
b:1300,
c:400
},
{
a:"D1",
b:300,
c:400
}
];
var max = d3.max(kary, function(d){ return d3.max(d3.values(d).filter(function(d1){ return !isNaN(d1)}))});
console.log(max)
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
希望这有帮助!
答案 1 :(得分:0)
你可以做这样的事情
var JObject = [{
a: "A1",
b: 100,
c: 800
}, {
a: "B1",
b: 300,
c: 400
}];
var res = Math.max.apply(null,JObject.map(function(v) {
// iterate over array element and getting max value from result array
var r = [];
for (var val in v) {
// iterate over object inside array
if (v.hasOwnProperty(val)) {
var num = parseInt(v[val], 10);
// parsing the value for integer output
r.push(isNaN(num) ? 0 : num);
// pushing value to array, in case of `Nan` pushing it as 0
}
}
return Math.max.apply(null,r);
// getting max value from object values
}));
console.log(res);
答案 2 :(得分:0)
你可以使这或多或少是通用的 - 并且可能将它缩短为单个reduce语句。
#ifndef NDEBUG
fprintf(stderr, "My trace message\n");
#endif
答案 3 :(得分:0)
如果您使用的是像lodash或下划线这样的库,您只需执行以下操作:
_.max(_.map(JObject, function(a){
return _.max(_.values(a));
}));
您也可以使用reduce:
解决它
_.reduce(JObject, function(val, a){
return _.max(_.values(a)) > val ? _.max(_.values(a)) : val;
},0);