如何将数据中val字段的最大值赋值给参数maxVal?
获取数据结构中val字段的最大值并赋值给maxVal
JavaScript 实现
假设你的数据结构存储在变量 dataObj 中,以下两种方法均可实现需求:
方法1:使用 map + Math.max
先提取所有 val 值组成数组,再通过扩展运算符传入 Math.max 计算最大值:
const dataObj = { "data": { "values": [ {"rowgroup": "I", "segment": "C", "val": 2000000}, {"rowgroup": "I", "segment": "B", "val": 7000000}, {"rowgroup": "II", "segment": "A", "val": 4000000}, {"rowgroup": "II", "segment": "B", "val": 1000000}, {"rowgroup": "II", "segment": "D", "val": 2000000} ] }, "params": [{"name":"maxVal"}] }; // 提取所有val字段 const valList = dataObj.data.values.map(item => item.val); // 计算最大值并赋值 const maxVal = Math.max(...valList);
方法2:使用 reduce 直接计算(更高效)
无需额外生成数组,直接遍历数组时比较并更新最大值:
const maxVal = dataObj.data.values.reduce((currentMax, item) => { return item.val > currentMax ? item.val : currentMax; }, -Infinity); // 初始值设为负无穷,兼容val为负数的场景
Python 实现
如果用Python处理该数据结构,代码会更简洁:
data_obj = { "data": { "values": [ {"rowgroup": "I", "segment": "C", "val": 2000000}, {"rowgroup": "I", "segment": "B", "val": 7000000}, {"rowgroup": "II", "segment": "A", "val": 4000000}, {"rowgroup": "II", "segment": "B", "val": 1000000}, {"rowgroup": "II", "segment": "D", "val": 2000000} ] }, "params": [{"name":"maxVal"}] } max_val = max(item["val"] for item in data_obj["data"]["values"])
内容的提问来源于stack exchange,提问作者Tom Martens
相关产品推荐
相关产品推荐

