如果数组有几个相等大的数字,max()函数在javascript中做什么
如果我们得到像如果数组有几个相等大的数字,max()函数在javascript中做什么,javascript,arrays,sorting,max,Javascript,Arrays,Sorting,Max,如果我们得到像 array=[5,5,5,5,3,2]; return Math.max.Apply(Math,array); 如果发生这种情况,如何让它从第一个返回到最后一个数字。最好的方法是: var a = [5,5,5,5,3,2]; var largest = Math.max.apply(null,a) var filtered = a.filter(function(item) { item === largest }); 其中筛选的将包含所有最大的元素 在@Clark
array=[5,5,5,5,3,2];
return Math.max.Apply(Math,array);
如果发生这种情况,如何让它从第一个返回到最后一个数字。最好的方法是:
var a = [5,5,5,5,3,2];
var largest = Math.max.apply(null,a)
var filtered = a.filter(function(item) {
item === largest
});
其中筛选的将包含所有最大的元素
在@Clarkie的例子中,他给Math.max打电话的频率比需要的要高。
在Dan和Clarkie的示例中,他们都将Apply大写,这是不正确的,正确的调用函数是Math.max.Apply
,Math不需要作为第一个参数传入
请参见以下工作示例:
修改@Clarkie的好主意。我们可以把它归结为
var a=[5,5,5,3,2],
m=数学最大值(…a),
f=a.filter(e=>e==m);
document.write(“+JSON.stringify(f)+”)代码>回答标题中的问题:
Math.max(...[1,2,3]) // 3
如果数组中有几个相等的值,max()函数在javascript中做什么
大量
答案是,没有。max()不作用于数组
通过将项目作为参数分散到max()
,可以传递数组:
或者如您所见,使用apply()
:
如果问题更多:
当给定多个相同的最大值时,Math.max()会做什么
答案是,它返回该数字:
a.sort() // [2, 3, 5, 5, 5, 5]
这个问题令人困惑:
如果发生这种情况,我如何让它从第一个返回到最后一个数字
你想让它返回一个排序数组吗?从[5,5,5,3,2]
到[2,3,5,5,5,5]
Array.from(new Set(a)) // [2, 3, 5]
你想删除复制品吗?从[5,5,5,3,2]
到[2,3,5]
Array.from(new Set(a)) // [2, 3, 5]
你能澄清你的问题吗?函数Math.max()
返回一个数字。若要返回一个等于最大值的数字列表,则必须编写自己的函数。绝对并没有迹象表明@Ignacio Bricchi正在使用ES2015寻找解决方案,也并没有迹象表明他希望将结果写入文档。这个答案所做的假设会使解决方案复杂化,因此会使他从试图解决的简单问题中解脱出来。@Sheeldot你一定非常困惑。你的代码包括箭头函数和常量声明。我一定是这样,你绝对是对的!太棒了,我现在已经把代码改成了它本来应该有的样子,谢谢@Redu
Array.from(new Set(a)) // [2, 3, 5]