如何返回一个新的数组,它的值大于它的第二个值。如果传递给函数的数组的元素少于两个,函数应该返回false。
例如,
greaterThanSecond([1,3,5,7])
应返回**[5,7]**。
greaterThanSecond([0, -3, 2, 5])
应返回**[0,2,5]**。
greaterThanSecond([2])
应返回false。
我试过了。
function valGreaterThanSecond(arr) {
for (let newArr of arr) {
if (newArr > arr[1]) {
return [newArr]
}else {
return false
}
}
}
5条答案
按热度按时间kcwpcxri1#
您可以尝试一行代码:
过滤函数有3个参数:
1.检查的元素
1.检查元素的索引
1.原始数组
过滤器遍历数组,您可以与原始数组的第二个元素进行比较
of1yzvn42#
试试这个方法
ymdaylpp3#
你可以试试这个
apeeds0o4#
你可以试试这个:
在这个函数中,首先你应该检查数组的长度是否不小于2,然后我们通过检查数组中的每个数字是否大于第二个数字来过滤数组,并将那些数字保留在数组中。
pkwftd7m5#
在我提出另一种方法之前,首先让我们尝试修复您的代码。
你的函数的问题是,一旦你发现一个数大于第二个元素,你就立即返回它,这样就退出了函数,并返回数组中的这个元素,这不是你想要的。如果你发现数组中的一个元素不大于第二个元素,你就立即返回false。这也不是你想要的行为,在
[1,3,5,7]
的例子中,你会返回false,因为1〈3,此时你已经退出函数了。使用
reduce
的不同方法我想建议一个不同的方法,因为有几个答案使用
filter
,这是我会考虑自己的第一件事。下面是使用
reduce
函数处理数组的解决方案。JSFiddle