我非常亲密...我想。尝试使用do while循环推送“我爱甲壳虫乐队!”进入数组(n)的次数,包括输入的任何数字的0。
在函数中添加一个do-while循环,添加“我爱甲壳虫!”到空数组。
然后,循环应增加作为参数传递的数字。循环的条件应检查以确保参数号小于15。它应包含多个字符串,这些字符串表示输入数字与15之间的差。
使用字符串“ I love the Beatles!”返回数组。
我已经尝试了本课程到目前为止所学的内容。任何解释将不胜感激!
function iLoveTheBeatles(n) {
let newArray = [];
let LoveBeatles = newArray.push("I love the Beatles!");
do {
LoveBeatles;
return newArray;
} while (n < 15);
if (n > 15)
newArray.push(LoveBeatles);
return newArray;
}
1) Beatles Loops iLoveTheBeatles returns an
array of 'I love the Beatles!' 8 times
when passed the parameter 7 :
Error: Expected [ 'I love the Beatles!' ]
to equal
[ 'I love the Beatles!', 'I love the Beatles!',
'I love the Beatles!', 'I love the Beatles!',
'I love the Beatles!', 'I love the Beatles!',
'I love the Beatles!', 'I love the Beatles!' ]
答案 0 :(得分:2)
似乎您要尝试将字符串n次推入数组,并作为函数调用的结果返回此数组。一个do-while循环不是一个好的解决方案,因为如果将0传递给该函数,它将返回一个空数组,对吗?但是一个do-while循环至少要迭代一次,直到“ while”检查完成。这就是它与while循环的不同之处。因此,请尝试以下方法:
function iLoveTheBeatles(n) {
let loveTheBeatlesNTimes = [];
let target = Math.sqrt(Math.pow(n - 15, 2))
if (target > 0) {
do {
loveTheBeatlesNTimes.push('I Love The Beatles')
} while (--target > 0)
}
return loveTheBeatlesNTimes;
}
console.log(iLoveTheBeatles(10)) // should output 5 times
console.log('----------')
console.log(iLoveTheBeatles(17)) // should output 2 times
答案 1 :(得分:1)
只需使LoveBeatles
为一个函数。您还需要从函数的末尾return
开始,并递增n
,以避免无限循环。
function iLoveTheBeatles(n) {
let newArray = [];
let LoveBeatles = () => newArray.push("I love the Beatles!");
do {
LoveBeatles();
n++;
} while (n < 15);
if (n > 15) LoveBeatles();
return newArray;
}
const res = iLoveTheBeatles(7);
console.log(res);
console.log(res.length);
.as-console-wrapper { max-height: 100% !important; top: auto; }
答案 2 :(得分:0)
通过按您的方式定义LoveBeatles
,您已经将字符串"I love the Beatles"
推到了新数组上。我很确定,您不打算这样做。
如果仅希望将所需的字符串n
压入一个数组,则有多个选项。最原生的是for
循环:
function iLoveTheBeatles(n) {
const newArray = [];
// throw error for invalid n
if (n < 0) {
throw new Error("Input value n is negative");
}
for (let i = 0; i < n; i++) {
newArray.push('I love the Beatles!');
}
return newArray;
}
while
循环解决方案可能看起来像这样:
function iLoveTheBeatles(n) {
const newArray = [];
// throw error for invalid n
if (n < 0) {
throw new Error("Input value n is negative");
}
while (newArray.length < n) {
newArray.push('I love the Beatles!');
}
return newArray;
}
答案 3 :(得分:0)
您可以使用reapet
来使文本多行,然后使用特殊字符split
来~
,最后删除最后一个值:
var text = "I love the Beatles!~".repeat(4).split('~');
text.pop(); // remove last empty value
console.log(text)