【发布时间】:2021-07-23 06:19:28
【问题描述】:
我在函数和执行上下文上完成了这个模块 - 所有问题都进行得很顺利,但有一个挑战我花了很多时间但仍然无法解决。任何帮助将不胜感激。谢谢
挑战问题说:
编写一个函数addingAllTheWeirdStuff,将array2中所有奇数的和与array1中10以下的每个元素相加。
同样,addingAllTheWeirdStuff 也应该将 array2 中所有偶数的总和与 array1 中超过 10 的元素相加。
奖励:如果 array2 中的任何元素大于 20,则将 array1 中的每个元素加 1。
// Uncomment these to check your work!
// console.log(addingAllTheWeirdStuff([1, 3, 5, 17, 15], [1, 2, 3, 4, 5])); // expected log [10, 12, 14, 23, 21]
// console.log(addingAllTheWeirdStuff([1, 3, 5, 17, 15, 1], [1, 2, 3, 4, 5, 22])); // expected log [11, 13, 15, 46, 44, 11]
// my attempt so far:
function addingAllTheWeirdStuff(array1, array2) {
// ADD CODE HERE
let result = []
for (let i = 0; i < array2.length; i++) {
if (array2[i] > 20) {
result = array1[i] += 1
}
}
for (let i = 0; i < array2.length; i++) {
if (array2[i] % 2 === 0 && array1[i] > 10) {
result = array1[i] + array2[i]
}
}
for (let i = 0; i < array2.length; i++) {
if (array2[i] % 2 !== 0 && array1[i] < 10) {
result = array1[i] + array2[i]
}
}
return result
}
【问题讨论】:
-
欢迎来到 StackOverflow(请使用 tour)——您似乎没有指出您的问题是什么。你能澄清一下吗?
-
谢谢。是的,控制台日志旁边有“预期日志”的 cmets。这就是我应该得到的,但我没有得到这些数组作为我的答案,而是得到 8 个和 8 个作为我的两个答案.. 很远,甚至不是数组。
-
一个问题是您正在用值覆盖
result,而不是向数组添加值,例如result = array1[i] += 1。您可以使用push(value)添加到数组中,例如result.push(array1[i]+1) -
谢谢帕特里克.. 我确实认为这是一个问题。我尝试 .push 进入数组,但这也不起作用。我能想到的唯一另一件事是创建一个 sum 变量并将所有结果添加到这个 sum 中,但是当尝试将 sum 放入数组时这也不起作用。对所有结果使用 .push 让我得到: [21, 2, 8] [2, 21, 2, 8]
标签: javascript loops conditional-statements