如何找到嵌套在JSON中的列的最高价值?

时间:2019-03-15 11:56:06

标签: javascript d3.js

我想在JSON对象中找到最大值。这是我的数据-

(3) [{…}, {…}, {…}]
0: {name: "a", value: 12}
1: {name: "b", value: 28}
2: {name: "c", value: 60}

我想获得最大值,但它们是嵌套的。我可以做这样的事情

arr = {}    
for (x in jsonObj){
  arr.push(x.value)
}    
d3.max(arr)

我很好奇是否有更好的方法来处理这种情况。我的目标是使用d3.max()查找最大值。

3 个答案:

答案 0 :(得分:5)

尽管Hrishi和Nina Scholz的其他回答都很好,但是我想提一下,使用D3的惯用方式是利用d3.max()。您可以传入访问器函数作为第二个参数,该参数将为数组的每个成员调用,并返回您感兴趣的嵌套值。

const data = [
  {name: "a", value: 12},
  {name: "b", value: 28},
  {name: "c", value: 60}
];

const maxValue = d3.max(data, d => d.value);
      // accessor function ---^

console.log(maxValue);  // 60
<script src="https://d3js.org/d3.v5.js"></script>

答案 1 :(得分:0)

array = [
    { name: "a", value: 12 },
    { name: "b", value: 28 },
    { name: "c", value: 60 },
]

console.log(Math.max.apply(Math, array.map(function (e) { return e.value; })));

答案 2 :(得分:0)

您可以通过采用一个很小的值作为起始值来缩小数组,并获得累加器的最大值和该值。

@procname