JavaScript 无法获取最大值或最小值或数组
Posted
技术标签:
【中文标题】JavaScript 无法获取最大值或最小值或数组【英文标题】:JavaScript cant get max or min value or an array 【发布时间】:2014-05-10 06:04:02 【问题描述】:你好,我有一个数组,但我似乎无法获得它的最小值和最大值,我的代码出了什么问题
var repeat, studentArr = [], markArr = [];
while (repeat !== 'n' && repeat !== 'N')
studentArr.push(prompt("Enter Student Name: "));
markArr.push(parseInt (prompt("Enter Student mark: ")));
repeat = prompt ("Do you want to enter another student: y/n");
function min (markArr)
var min = Number.Max_Value;
for(var i = 0; i < markArr.length; i++)
if(number(markArr[i]) < min)
min = number(markArr[i]);
return markArr;
var smallest = min(markArr);
function max (markArr)
var max = Number.Max_Value;
for(var i = 0; i > markArr.length; i++)
if(number(markArr[i]) < max)
max = number(markArr[i]);
return markArr;
var largest = max(markArr);
document.write(largest);
【问题讨论】:
你的函数返回的是数组,而不是数字 你在哪里定义了函数number
? ReferenceError: number is not defined
Learn how todebug javascript.
非常仔细地看一下你在这个函数中比较的感觉:function max (markArr)
这是一个更好的方法。 ***.com/questions/1669190/…
我认为您使用的这个数字功能不存在。如果您尝试将其转换为数字,请使用 parseFloat()
【参考方案1】:
您可以从 Javascript 扩展 Array
类型,例如:
Array.prototype.min = function(comparer)
if (this.length === 0) return null;
if (this.length === 1) return this[0];
comparer = (comparer || Math.min);
var result = this[0];
for (var i = 1; i < this.length; i++)
result = comparer(this[i], v);
return result;
Array.prototype.max = function(comparer)
if (this.length === 0) return null;
if (this.length === 1) return this[0];
comparer = (comparer || Math.max);
var result = this[0];
for (var i = 1; i < this.length; i++)
result = comparer(this[i], v);
return result;
并使用这样的东西:
var minValue = yourArray.min();
var maxValue = yourArray.max();
看jsbin
:http://jsbin.com/yoyecono/1/edit
【讨论】:
以上是关于JavaScript 无法获取最大值或最小值或数组的主要内容,如果未能解决你的问题,请参考以下文章