JavaScript:如何获取最小值
如何从JavaScript中的数组中获取最小值?我确实尝试了Math.min方法,但它似乎没有像预期的那样工作 例如,我有四个带数值的div: HTML:JavaScript:如何获取最小值,javascript,jquery,Javascript,Jquery,如何从JavaScript中的数组中获取最小值?我确实尝试了Math.min方法,但它似乎没有像预期的那样工作 例如,我有四个带数值的div: HTML: 你能告诉我我做错了什么吗?更新答案:此解决方案现在正在运行 您必须使用parseInt(…,10)完成此操作 Math.min不接受数组 因此,在您的情况下,您将有如下内容: function getMinFromArray (array_of_values) { return array_of_values.sort()[0];
你能告诉我我做错了什么吗?更新答案:此解决方案现在正在运行
function getMinFromArray (array_of_values) {
return array_of_values.sort()[0];
};
var r = parseInt($('#r').text(), 10),
g = parseInt($('#g').text(), 10),
b = parseInt($('#b').text(), 10),
p = parseInt($('#a').text(), 10);
var mainBox = [r,g,b,a];
var result = getMinFromArray(mainBox);
alert(result);
var minValue = Math.min.apply(Math, mainBox);
var minValue = Math.min(r,g,b,p);
这是一个工作示例:更新答案:此解决方案现在正在工作
function getMinFromArray (array_of_values) {
return array_of_values.sort()[0];
};
var r = parseInt($('#r').text(), 10),
g = parseInt($('#g').text(), 10),
b = parseInt($('#b').text(), 10),
p = parseInt($('#a').text(), 10);
var mainBox = [r,g,b,a];
var result = getMinFromArray(mainBox);
alert(result);
var minValue = Math.min.apply(Math, mainBox);
var minValue = Math.min(r,g,b,p);
这是一个有效的示例:我认为您不能像这样将数组传递给
Math.min()
试着这样做:
function getMinFromArray (array_of_values) {
return array_of_values.sort()[0];
};
var r = parseInt($('#r').text(), 10),
g = parseInt($('#g').text(), 10),
b = parseInt($('#b').text(), 10),
p = parseInt($('#a').text(), 10);
var mainBox = [r,g,b,a];
var result = getMinFromArray(mainBox);
alert(result);
var minValue = Math.min.apply(Math, mainBox);
var minValue = Math.min(r,g,b,p);
或者像这样使用它:
function getMinFromArray (array_of_values) {
return array_of_values.sort()[0];
};
var r = parseInt($('#r').text(), 10),
g = parseInt($('#g').text(), 10),
b = parseInt($('#b').text(), 10),
p = parseInt($('#a').text(), 10);
var mainBox = [r,g,b,a];
var result = getMinFromArray(mainBox);
alert(result);
var minValue = Math.min.apply(Math, mainBox);
var minValue = Math.min(r,g,b,p);
我认为您不能像这样将数组传递给
Math.min()
试着这样做:
function getMinFromArray (array_of_values) {
return array_of_values.sort()[0];
};
var r = parseInt($('#r').text(), 10),
g = parseInt($('#g').text(), 10),
b = parseInt($('#b').text(), 10),
p = parseInt($('#a').text(), 10);
var mainBox = [r,g,b,a];
var result = getMinFromArray(mainBox);
alert(result);
var minValue = Math.min.apply(Math, mainBox);
var minValue = Math.min(r,g,b,p);
或者像这样使用它:
function getMinFromArray (array_of_values) {
return array_of_values.sort()[0];
};
var r = parseInt($('#r').text(), 10),
g = parseInt($('#g').text(), 10),
b = parseInt($('#b').text(), 10),
p = parseInt($('#a').text(), 10);
var mainBox = [r,g,b,a];
var result = getMinFromArray(mainBox);
alert(result);
var minValue = Math.min.apply(Math, mainBox);
var minValue = Math.min(r,g,b,p);
工作小提琴
使用以下代码
//parseInt to convert String => Int.
var r = parseInt($('#r').text(),10);
var g = parseInt($('#g').text(),10);
var b = parseInt($('#b').text(),10);
var p = parseInt($('#a').text(),10);
//Here sort the values
var minN = Math.min(r,g,b,p);
alert(minN);
工作小提琴
使用以下代码
//parseInt to convert String => Int.
var r = parseInt($('#r').text(),10);
var g = parseInt($('#g').text(),10);
var b = parseInt($('#b').text(),10);
var p = parseInt($('#a').text(),10);
//Here sort the values
var minN = Math.min(r,g,b,p);
alert(minN);
试试这个:
var r = parseInt($('#r').text(), 10),
g = parseInt($('#g').text(), 10),
b = parseInt($('#b').text(), 10),
p = parseInt($('#a').text(), 10);
var minN=Math.min(r,g,b,p);
alert(minN);
由于.min()
不接受数组参数,而只接受逗号分隔的整数,因此您可以逐个放置整数,它将返回最小值。请尝试以下操作:
var r = parseInt($('#r').text(), 10),
g = parseInt($('#g').text(), 10),
b = parseInt($('#b').text(), 10),
p = parseInt($('#a').text(), 10);
var minN=Math.min(r,g,b,p);
alert(minN);
由于.min()
不接受数组参数,而只接受逗号分隔的整数,因此您可以逐个放置整数并返回最小值。您可以尝试:
你可以尝试:
我更喜欢对包含数字的任意数量的div使用通用解决方案。 首先,为那些以数字作为文本的div添加一个类。例如,class=“items”。 然后使用以下函数获取最小值
var getMinValueForDivs = function (divsClass) {
var itemDivs = $('.' + divsClass);
var values = [];
itemDivs.each(function (index, item) {
values.push(item.innerHTML);
});
return Math.min.apply(this, values);
}
例:
我更喜欢对包含数字的任意数量的div使用通用解决方案。 首先,为那些以数字作为文本的div添加一个类。例如,class=“items”。 然后使用以下函数获取最小值
var getMinValueForDivs = function (divsClass) {
var itemDivs = $('.' + divsClass);
var values = [];
itemDivs.each(function (index, item) {
values.push(item.innerHTML);
});
return Math.min.apply(this, values);
}
例:
…因为
text()
返回字符串min
不接受数组。我没有投反对票(最好是评论),这会导致NaN。删除-1。现在它和其他所有的都一样了……因为text()
返回一个字符串min
不接受数组。我没有投反对票(最好是评论),这会导致NaN。删除-1。现在和其他问题一样,这个问题不是很好。在你回答这个问题之前,你应该先阅读文档。var minN=Math.min.apply(Math,mainBox)代码>-请检查它是否工作,因为它不工作。。因为OP打错了-a是undefined@Popnoodles当变量匹配时,它将显示:。:)最后一个变量是p
,所以它用a
自动全局调用
本身。这个问题不是很好。在你回答这个问题之前,你应该先阅读文档。var minN=Math.min.apply(Math,mainBox)代码>-请检查它是否工作,因为它不工作。。因为OP打错了-a是undefined@Popnoodles当变量匹配时,它将显示:。:)最后一个变量是p
,所以它用a
@poplane自动拉入了
本身的全局变量,好的,你可以注释掉它,没问题。你应该始终将10个基数传递给parseInt
,例如parseInt(text,10)
,否则它将解析以0开头的数字作为八进制等等!)@Poploane,好的,你可以把它注释掉,没问题。你应该总是把10个基数传递给parseInt
,例如parseInt(text,10)
,否则它将解析前导0为八进制的数字等等!)