Javascript 返回数组中位于给定键中的最小元素

Javascript 返回数组中位于给定键中的最小元素,javascript,Javascript,我想返回给定对象和键中的最小元素,但如果给定数组为空或给定键处的属性不是数组,则应返回undefined。 我解决了这个问题,但我对我的方法并不完全满意。 有没有建议缩短我的代码 let obj = { key: [8, 5, 10, 15, 11, 21, 1, 25] }; const smallest = (obj, key) => { return !Array.isArray(obj[key]) || obj[key].length <= 0 ? undefine

我想返回给定对象和键中的最小元素,但如果给定数组为空或给定键处的属性不是数组,则应返回undefined。 我解决了这个问题,但我对我的方法并不完全满意。 有没有建议缩短我的代码

let obj = {
  key: [8, 5, 10, 15, 11, 21, 1, 25]
};

const smallest = (obj, key) => {
  return !Array.isArray(obj[key]) || obj[key].length <= 0 ? undefined : obj[key].reduce((l, s) => l < s ? l : s)
}
smallest(obj, 'key');
让obj={
钥匙:[8,5,10,15,11,21,1,25]
};
常量最小=(对象,键)=>{
return!Array.isArray(obj[key])| | obj[key]。长度l
您可以接受检查并返回最小值

const minimate=(obj,key)=>Array.isArray(obj[key])&&obj[key].length
? Math.min(…对象[key])
:未定义;
log(最小的({key:[8,5,10,15,11,21,1,25]},'key');
log(最小的({key:[8]},'key');
log(最小的({key:[]},'key');

log(最小的({},'key')您可以接受检查并返回最小值

const minimate=(obj,key)=>Array.isArray(obj[key])&&obj[key].length
? Math.min(…对象[key])
:未定义;
log(最小的({key:[8,5,10,15,11,21,1,25]},'key');
log(最小的({key:[8]},'key');
log(最小的({key:[]},'key');

log(最小的({},'key')
而不是reduce您可以在数组上使用
Math.min()
扩展运算符(…)

让obj={
钥匙:[8,5,10,15,11,21,1,25]
};
常量最小=(对象,键)=>{

return!Array.isArray(obj[key])| | obj[key].length而不是reduce您可以对数组使用
Math.min()
扩展运算符(…)

让obj={
钥匙:[8,5,10,15,11,21,1,25]
};
常量最小=(对象,键)=>{

return!Array.isArray(obj[key])| | obj[key].length Hi Nina,我的意思是如果你阅读我的帖子,如果给定数组为空,它需要返回
未定义的
?Hi Nina,我的意思是如果你阅读我的帖子,如果给定数组为空,它需要返回
未定义的
?Hi,但是如果给定数组为空,它应该返回
未定义的
d
如果给定数组为空以实现向后兼容性:
Math.min.apply(Math,obj[key])
。然而,我想知道为什么要传递数组或空数组以外的内容?在调用
minimate
之前,您不知道obj
中有什么?我的意思是,在根本没有数字的情况下要求最小的数字是很奇怪的。为了向后兼容性:
Math.min.apply(Math,obj[key])
。但是,我想知道为什么要传递数组或空数组以外的内容?在调用
minimate
之前,您不知道obj中有什么?我的意思是,在根本没有数字的情况下要求最小的数字是很奇怪的。