创建了一个函数,该函数从数组中返回两个最低的正整数之和。我的问题是,它似乎可以在CodeWars网站上正常工作,但是当我在Chrome控制台中运行它时,.filter不是功能错误。我怀疑它在箭头功能中存在语法错误,但我无法终生解决!
function sumTwoSmallestNumbers(numbers) {
const filter = numbers.filter(x => x > -1).sort((a, b) => a - b);
return filter[0] + filter[1];
}
sumTwoSmallestNumbers(544, 32654, 34297, 9237, 343, 98); // 441
答案 0 :(得分:2)
您必须使用如下数组:
function sumTwoSmallestNumbers(numbers) {
const filter = numbers.filter(x => x > -1).sort((a, b) => a - b);
return filter[0] + filter[1];
}
console.log(sumTwoSmallestNumbers([544, 32654, 34297, 9237, 343, 98])); // 441
答案 1 :(得分:1)
在JavaScript中,filter
是在数组上实现的方法。您必须以数组形式传递参数(numbers
)
function sumTwoSmallestNumbers(numbers) {
const filter = numbers.filter(x => x > -1).sort((a, b) => a - b);
return filter[0] + filter[1];
}
console.log(sumTwoSmallestNumbers([544, 32654, 34297, 9237, 343, 98]));
答案 2 :(得分:1)
您需要传递一个类似的数组,
function sumTwoSmallestNumbers(numbers) {
const filter = numbers.filter(x => x > -1)
filter.sort((a, b) => a - b);
return filter[0] + filter[1];
}
console.log(sumTwoSmallestNumbers([544, 32654, 34297, 9237, 343, 98])); // 441
或者,在ES6中,您可以使用spread
这样的运算符,
function sumTwoSmallestNumbers(...numbers) {
const filter = numbers.filter(x => x > -1)
filter.sort((a, b) => a - b);
return filter[0] + filter[1];
}
console.log(sumTwoSmallestNumbers(544, 32654, 34297, 9237, 343, 98)); // 441
答案 3 :(得分:1)
使用Rest parameters将不确定数量的参数表示为数组。
function sumTwoSmallestNumbers(...numbers) {
const filter = numbers.filter(x => x > -1).sort((a, b) => a - b);
return filter[0] + filter[1];
}
console.log(sumTwoSmallestNumbers(544, 32654, 34297, 9237, 343, 98));