如何解决在javascript中使用.forEach在数组中查找2个数字的倍数
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15];
arr.forEach(function(element, index) {
if (element % 5 === 0 && element % 3 === 0) return arr[index] = "Fizz-Buzz"
if (element % 5 === 0) return arr[index] = "Buzz"
if (element % 3 === 0) return arr[index] = "Fizz"
})
console.log(arr)
还要注意,javascript数组从索引0开始......所以count[item] = [item]
在count [0]处留下一个未定义的点......你应该让你的forEach函数使用可以传递给它的索引参数(在您使用 count[item] = [item] 的特殊情况不会产生那么多问题)但最好从一开始就以正确的方式进行
这里没有保护条款的代码:
arr.forEach(function (element, index) {
if (element % 5 === 0 && element % 3 === 0) {
arr[index] = "Fizz-Buzz"
} else if (element % 5 === 0) {
arr[index] = "Buzz"
} else if (element % 3 === 0) {
arr[index] = "Fizz"
}
})
运行代码片段
解决方法
我需要使用 .forEach 方法遍历一个数组,返回所有值,如果任何数字是 3 或 5 的倍数,然后也是 3 和 5,则该数字必须作为字符串返回。到目前为止我的代码:
let arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
let count = [];
arr.forEach((item) => {
count[item] = item;
if (count[item] % 3 === 0) {
count[item] = "Fizz";
} else if (count[item] % 5 === 0) {
count[item] = "Buzz";
} else if (count[item] % 3 === 0 || count[item] % 5 === 0) {
count[item] = "FizzBuzz";}
return count;});
console.log(count);
我遇到的问题是我无法让它返回“FizzBuzz”的最终字符串,并且还忽略了在控制台中显示的计数变量的初始化。
我是 JS 的初学者,所以如果你能在适用的地方提供答案的解释,我将不胜感激。
下面的输出图像:
编辑:
我忘了提到这是一个练习,它是作业的一部分,所以我需要使用 forEach 方法,这也使它与其他链接的问题不同,因为那里使用了 for 循环。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。