Javascript 如何为嵌套在JSON中的列查找最大值?

Javascript 如何为嵌套在JSON中的列查找最大值?,javascript,d3.js,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.ma

我想在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来找到最高值。

您可以通过将一个非常小的值作为起始值来减少数组,并获得累加器的最大值和值

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; })));
var数组=[{name:a,value:12},{name:b,value:28},{name:c,value:60}], max=array.reducemax,{value}=>Math.maxmax,value,-无穷大;
console.logmax 您可以通过将一个非常小的值作为起始值来减少数组,并获得累加器和值的最大值

var数组=[{name:a,value:12},{name:b,value:28},{name:c,value:60}], max=array.reducemax,{value}=>Math.maxmax,value,-无穷大;
console.logmax 尽管Hrishi和Nina Scholz的其他答案都非常好,但我想指出,使用D3的惯用方法是利用。您可以传入一个访问器函数作为第二个参数,该参数将为数组的每个成员调用,并返回您感兴趣的嵌套值

常数数据=[ {name:a,value:12}, {name:b,value:28}, {name:c,value:60} ]; const maxValue=d3.maxdata,d=>d.value; //存取函数--^ console.logmaxValue;//60
尽管Hrishi和Nina Scholz的其他答案都非常好,但我想指出,使用D3的惯用方法是利用。您可以传入一个访问器函数作为第二个参数,该参数将为数组的每个成员调用,并返回您感兴趣的嵌套值

常数数据=[ {name:a,value:12}, {name:b,value:28}, {name:c,value:60} ]; const maxValue=d3.maxdata,d=>d.value; //存取函数--^ console.logmaxValue;//60
您可以使用ds=array.mapfunction e{returne e.value;}生成d3数组,然后使用Math.max…ds;因为对象不是数组,所以它不起作用。它是从JSON对象解析而来的。@Cauder您可以使用object.valuesObj将对象转换为数组。您可以使用ds=array.mapfunction e{return e.value;}生成d3数组,然后使用Math.max…ds;因为对象不是数组,所以它不起作用。它是从JSON对象解析而来的。@Cauder您可以使用object.valuesobjI将该对象转换为数组。我要添加一个注释,说明该对象不是数组。它是用d3.json解析的,在constructor>name下,它是Object。我要补充一点,对象不是数组。它是用d3.json解析的,在constructor>name下,它表示Object.S.O。民主制度被打破了:你的答案很简单,假设D3101有3张选票,其中一张是我的。。。然而,我发现你的答案更加复杂和详细,没有一次投票就腐烂了。想想看…@GerardoFurtado这就是为什么我们有代议制民主国家,甚至那些已经看到了更好的日子…s.O。民主制度被打破了:你的答案很简单,假设D3101有3张选票,其中一张是我的。。。然而,我发现你的答案更加复杂和详细,没有一次投票就腐烂了。想想看…@GerardoFurtado这就是为什么我们有代议制民主国家,甚至那些已经看到了更好的日子。。。