Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取数组的最高值_Javascript_Arrays_Typescript - Fatal编程技术网

Javascript 获取数组的最高值

Javascript 获取数组的最高值,javascript,arrays,typescript,Javascript,Arrays,Typescript,我想得到数组的最高值(只有“y”),我该怎么做 我只将数组设置的值设置为[]类值[0] 数据=[ { 价值观:[ {x:'2017-01',y:1.2}, {x:'2017-02',y:1.3}, {x:'2017-03',y:1.5}, {x:'2017-04',y:1.6}, {x:'2017-05',y:1.8}, {x:'2017-06',y:1.9}, {x:'2017-07',y:1.5}, {x:'2017-08',y:1.7}, {x:'2017-09',y:1.5}, {x:

我想得到数组的最高值(只有“y”),我该怎么做

我只将数组设置的值设置为
[]
类值[0]

数据=[
{
价值观:[
{x:'2017-01',y:1.2},
{x:'2017-02',y:1.3},
{x:'2017-03',y:1.5},
{x:'2017-04',y:1.6},
{x:'2017-05',y:1.8},
{x:'2017-06',y:1.9},
{x:'2017-07',y:1.5},
{x:'2017-08',y:1.7},
{x:'2017-09',y:1.5},
{x:'2017-10',y:0}
]
}
];
data.forEach(函数(d){
log(Math.max(d.values[0].y));

});
我假设您希望从
数据[0]中获取具有最大值
y
的对象。值
,因为
数据
本身是一个只有一个元素的数组

如果您只想获得
y
(1.9)的最大值,可以使用,但是如果您想获得具有最大
y
的整个对象,则需要再次遍历数组以找到具有
y==1.9
的对象

相反,您可以使用同时执行这两项操作,它在数组中迭代调用每个元素上的回调,类似于,但每次迭代时从回调返回的值作为参数传递给下一次迭代

数据=[
{
价值观:[
{x:'2017-01',y:1.2},
{x:'2017-02',y:1.3},
{x:'2017-03',y:1.5},
{x:'2017-04',y:1.6},
{x:'2017-05',y:1.8},
{x:'2017-06',y:1.9},
{x:'2017-07',y:1.5},
{x:'2017-08',y:1.7},
{x:'2017-09',y:1.5},
{x:'2017-10',y:0}
]
}
];
var max=data[0]。value.reduce(函数(maxSoFar,current){
//如果current.y大于maxSoFar.y,则返回电流
//这样它就成为下一次迭代的maxSoFar
返回电流.y>maxSoFar.y?电流:maxSoFar;
});

控制台日志(最大值)
是数组-
数据[0]的第一个对象(索引0)的属性。值
。使用和获取所有
y
值,以获取最大值:

var数据=[{“值”:[{“x”:“2017-01”,“y”:1.2},{“x”:“2017-02”,“y”:1.3},{“x”:“2017-03”,“y”:1.5},{“x”:“2017-04”,“y”:1.6},{“x”:“2017-05”,“y”:1.8},{“x”:“2017-06”,“y”:1.9},{“x”:“2017-07”,“y”:1.5},{“x”:“2017-08”,“y”:1.7},{“x”:“2017-05”,“y”:“y”:“y”:“2017-09”,“y”:“y”:;
var result=Math.max.apply(null,数据[0].values.map(函数(o)){
返回o.y;
}));

控制台日志(结果)
数据
数组中只有一个成员。当您要迭代
(或者更确切地说是
数据[0]。值
)数组时,您正在迭代
数据
数组。请查看Math.max的工作方式…使用
数据[0]至少需要两项进行比较.values
获取实际数组,然后使用另一个问题的答案获取最大值。