Javascript 使用计算的属性键访问对象值

Javascript 使用计算的属性键访问对象值,javascript,object,ecmascript-6,Javascript,Object,Ecmascript 6,我正在写一个小助手,它应该得到数组的最小项 该函数将数组作为第一个参数,并使用“路径”访问对象属性“rest”参数 例如:minItem(停止,'duration','total') console.log:/[object object][duration][total] 应为://数字,它是总数的值 const stops= [{“运输”:“火车”、“出发”:“巴黎”、“到达”:“马德里”、“持续时间”: {“h”:“03”,“m”:“15”,“总计”:195},“成本”:160,“折扣”

我正在写一个小助手,它应该得到数组的最小项

该函数将
数组
作为第一个参数,并使用“路径”访问对象属性“rest”参数

例如:
minItem(停止,'duration','total')

console.log:
/[object object][duration][total]

应为:
//数字,它是总数的值

const stops=
[{“运输”:“火车”、“出发”:“巴黎”、“到达”:“马德里”、“持续时间”:
{“h”:“03”,“m”:“15”,“总计”:195},“成本”:160,“折扣”:0,
“参考”:“TPM0315”,“初始价格”:160},
{“交通”:“公共汽车”,“出发”:“巴黎”,“到达”:“马德里”,
“工期”:{“h”:“06”,“m”:“45”,“总计”:405},“成本”:30,“折扣”:25,
“参考”:“BPM0645”,“初始价格”:40},
{“交通”:“汽车”,“出发”:“巴黎”,“抵达”:“马德里”,“持续时间”:
{“h”:“05”,“m”:“45”,“总计”:345},“成本”:120,“折扣”:0,
“参考文件”:“CPM0545”,“初始价格”:120}];
/**@function minItem*/
常量minItem=(数组,…参数)=>{
常量键=`['${[…参数].join('\'][\'']}']`;
array.reduce((a,b)=>{
控制台日志(b+键);

返回a+键通过对使用创建的最小值数组使用获取最小值。要在
args
路径中获取值,可以使用以下命令迭代键:

const stops=[{“运输”:“火车”,“出发”:“巴黎”,“到达”:“马德里”,“持续时间”:{“h”:“03”,“m”:“15”,“总计”:195},“成本”:160,“折扣”:0,“参考”:“TPM0315”,“初始价格”:160},{“运输”:“公共汽车”,“出发”:“巴黎”,“到达”:“马德里”,“持续时间”:{“h”:“06”,“m”:“45”,“总计”:405,“成本”:30,“折扣”:25,“参考”:“BPM0645”,“初始价格”:40},{“运输”:“汽车”,“出发”:“巴黎”,“到达”:“马德里”,“持续时间”:{“h”:“05”,“m”:“45”,“总计”:345},“成本”:120,“折扣”:0,“参考”:“CPM545”,“初始价格”:120};
/**@function minItem*/
const getPathValue=(src,path)=>path.reduce((p,k)=>typeof p=='object'?p[k]:p,src);
const minItem=(array,…args)=>Math.min(…array.map((o)=>getPathValue(o,args));
console.log(minItem(停止、'duration'、'total');