Javascript 要将元素的最小值和最大值存储到对象吗
我想将数组中的最小和最大元素数存储到一个对象中,但结果显示为NANJavascript 要将元素的最小值和最大值存储到对象吗,javascript,Javascript,我想将数组中的最小和最大元素数存储到一个对象中,但结果显示为NAN const arr = [-10, 1, 2, 17000, 1, 2, 200] const result = arr.reduce(function (accumulator, iteritatedItem, index, arr) { const x = { 'max': Math.max(accumulator, iteritatedItem), 'min': Math.min(accumulator
const arr = [-10, 1, 2, 17000, 1, 2, 200]
const result = arr.reduce(function (accumulator, iteritatedItem, index, arr) {
const x = {
'max': Math.max(accumulator, iteritatedItem),
'min': Math.min(accumulator, iteritatedItem)
}
return x
})
您需要一个startValue
,它看起来像是Min
的大值和max
的大负值累加器
如果未给出startValue
,reduce
将第一个值作为累加器值,第二个值作为累加器值。由于没有预期的对象,所有值都是NaN
const
数组=[-10,1,2,17000,1,2,200],
结果=数组。减少({min,max},value)=>({
max:Math.max(max,value),
min:Math.min(min,value)
}),{min:Number.MAX_值,MAX:-Number.MAX_值});
控制台日志(结果)代码>您可以在每个函数中使用spread运算符来查找相应的值,例如:
const arr = [-10, 1, 2, 17000, 1, 2, 200]
const x = {
'max': Math.max(...arr),
'min': Math.min(...arr)
}
console.log(x)
>>> { max: 17000, min: -10 }
为什么不试试这个呢
const arr = [-10, 1, 2, 17000, 1, 2, 200]
let sortedArr = arr.sort((a, b) => a - b)
const x = {
'max': sortedArr[sortedArr.length - 1],
'min': sortedArr[0]
}
console.log(x)
使用
const数组=[-10,1,2,17000,1,2,200],
解决方案={
max:Math.max.apply(null,数组),
min:Math.min.apply(null,数组),
};
console.log(解决方案)代码>尝试记录累加器,您将在第二次迭代中看到为什么我是JS新手,我更喜欢更干净的解决方案!感谢复杂性-O(n日志n)