我需要帮助......我正在学习JavaScript,这似乎很容易,但我可能只是忽略......一切......我的问题是我需要返回一串所有偶数之间的数字0和num包括在内;前7给你0246,等等。我已经得到了:
function stringOfEvens(num) {
for (let i = 0; i <= num.length; ++i) {
if (i % 2 === 0 ); {
return i;
}
}
}
我知道整个前景是运行一个for循环,从0到每次追加的问题,如果那个数字%2 = 0,则返回该数字,但是有些东西是错过的...我甚至可能过度思考并接近这一切都是错误的......这比喻地让我发疯......
答案 0 :(得分:2)
function theJob(limit) {
var res = ''; //initialize as a string so that the other numbers will be appended instead of added
for (i = 0; i <= limit; i += 2) { // step increase by 2 to skip odd numbers
res += i;
}
return res; // returning the resulting string
}
console.log(theJob(10));
&#13;
答案 1 :(得分:1)
您将返回找到的第一个号码。更好的方法是在循环中构建字符串,然后在循环后的字符串后返回。如果num是int,也不需要num.length。
function stringOfEvens(num) {
var stringToReturn = "";
for (let i = 0; i <= num; i++) {
if (i % 2 === 0) {
stringToReturn = stringToReturn + i;
}
}
return stringToReturn;
}
答案 2 :(得分:1)
您可以在不使用模块化功能的情况下执行此操作,只需在零循环处启动循环,并在每次循环迭代时递增2 ...
function stringOfEvens(num) {
var result = "";
for (let i = 0; i <= num; i += 2) {
result += i; // append this even number to the result string
}
return result;
}
console.log(stringOfEvens(10));
&#13;
答案 3 :(得分:0)
只是为了好玩,因为它不是特别有效:
const stringOfEvens = n => Array(~~(n/2)+1).fill().map((_, i) => 2*i).join("")
或注释:
const stringOfEvens = n => // arrow function definition, returning:
Array(~~(n / 2) +1) // a sparse array of the required length
.fill() // made unsparse, so .map works
.map((_, i) => 2 * i) // then containing the even numbers
.join("") // and converted to a string
或者(更有效地)使用可以调用显式地图函数的Array.from
:
const stringOfEvens = n => Array.from(Array(~~(n/2)+1), (_, i) => 2*i).join("")
答案 4 :(得分:0)
function stringOfEvens(num) {
var str= ' ';
for(var i = 0; i <= num; i = i + 2){
str += i;
}
return str;
}
console.log(stringOfEvens(10))