如何制作仅返回大于输入数字的数字的函数? 我的代码在这里不起作用,我也不知道为什么。
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var num = Number(prompt('number'));
function findBiggestNumbers(num) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] > num) {
num = arr[i];
}
}
return num;
// }
console.log(findBiggestNumbers(num));
答案 0 :(得分:4)
要使用数组,您可以使用filter
函数,它会返回带有某些条件的数组子集。因此,您可以轻松做到:
var num = 5; //using 5 as an example
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var b = a.filter(number => number > num);
您可以将其放入函数中。
答案 1 :(得分:1)
您需要创建一个新的空数组,并用大于输入值的数字填充它。
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var num = Number(prompt('number'));
function FindBiggestNumbers(num) {
let biggerThanArray = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > num) {
biggerThanArray.push(arr[i]);
}
}
return biggerThanArray;
}
console.log(FindBiggestNumbers(num));
答案 2 :(得分:1)
您可以使用Array.prototype.filter()
:
function FindBiggestNumbers(num) {
return arr.filter(n => n > num);
}
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var number = Number(prompt("Enter a number"));
console.log(FindBiggestNumbers(number));
另一种选择是在if
循环内使用嵌套的for
语句,如下所示:
首先创建一个新数组:
function FindBiggestNumbers(num) {
var newArr = [];
}
然后遍历原始数组:
function FindBiggestNumbers(num) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
}
}
如果发现数组中的元素大于数字,则将其添加到新数组中:
function FindBiggestNumbers(num) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > num) {
newArr.push(arr[i]);
}
}
}
最后,返回新数组:
function FindBiggestNumbers(num) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > num) {
newArr.push(arr[i]);
}
}
return newArr;
}
演示:
function FindBiggestNumbers(num) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > num) {
newArr.push(arr[i]);
}
}
return newArr;
}
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var number = Number(prompt("Enter a number"));
console.log(FindBiggestNumbers(number));
答案 3 :(得分:1)
您可以开始理解和使用功能性JS做一些有趣的事情。
类似于Daladier Sampaio的回答,我使用filter
返回一个数组,其中每个元素在回调函数中传递一个条件(el> num)。 ({5}中引入了filter
,reduce
和map
,它们是非常有用的数组方法,非常值得学习使用。)
在此示例中,我传入了-并称为-而是一个名为greaterThan
的整个函数。
greaterThan
1)接受一个参数-n
,在这种情况下是提示符下的数字
2)返回一个数组-将对每个数组元素进行操作的回调函数。此函数的有趣之处在于,它在返回时带有num
的副本。像这样的保留了外部词法环境的副本的函数称为closure。了解它们是什么以及它们如何工作是一项有用的JS技能,并且是JS访谈中经常提到的一项技能。
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const num = Number(prompt('number'));
// accepts a number and returns a callback function
// that accepts an array element and
// tests it against the value of `n`
function greaterThan(n) {
return function (el) {
return el > n;
};
}
// calling greater than with our prompted number
// returns that new callback function that checks each
// array element
const out = arr.filter(greaterThan(num));
console.log(out);
现代JS> = ES6将使您能够精简使用箭头功能必须编写的代码量。下面的单行代码将代替示例中的函数:
const greaterThan = n => el => el > n;