Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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 - Fatal编程技术网

Javascript 要将元素的最小值和最大值存储到对象吗

Javascript 要将元素的最小值和最大值存储到对象吗,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

我想将数组中的最小和最大元素数存储到一个对象中,但结果显示为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, 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)