Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 添加数字数组的奇数元素时发生简单错误_Javascript_Arrays - Fatal编程技术网

Javascript 添加数字数组的奇数元素时发生简单错误

Javascript 添加数字数组的奇数元素时发生简单错误,javascript,arrays,Javascript,Arrays,因为我是新来的,所以这里的问题非常简单;我试图对一个数字数组的所有奇数值求和,但我使用的函数不返回。。。任何东西对于下面代码中的精确错误,我有点不知所措 function addOdds(numArray) { //create sum variable let sum = 0; for(i = 0; i < numArray.length; i++) { if(numArray[i] % 2 === 1) { sum = sum + numArray[i

因为我是新来的,所以这里的问题非常简单;我试图对一个数字数组的所有奇数值求和,但我使用的函数不返回。。。任何东西对于下面代码中的精确错误,我有点不知所措

function addOdds(numArray) {
  //create sum variable
  let sum = 0;

  for(i = 0; i < numArray.length; i++) {
    if(numArray[i] % 2 === 1) {
      sum = sum + numArray[i];
    }
  }

  return sum;
}
函数添加赔率(numArray){
//创建和变量
设和=0;
对于(i=0;i
如果您有一个数组,则不需要使用for循环并尝试对索引执行复杂的逻辑

您只需使用内置的JS函数“forEach()”


对数组中的数字求和的一个好方法是使用。它比循环快得多,并且允许您使用更少的代码。以下示例保持总和不变,除非某个条目为奇数,在这种情况下,它将该条目添加到总和中

const number=[1,2,3,4,5,6,7,8,9,10,11,12];
const sumforbits=arr=>arr.reduce((和,i)=>i%2==0?和:和+i);

log(sumforbits(numbers))
作为参数传递给该函数的是什么?如果您添加
addLobbits([1,2,3,4,5,6])
它似乎工作得很好。此代码工作得很好-它返回数组中奇数的总和i'm与其他人在一起。。。此代码按预期运行。这是冗长和老派的,但它是有效的。欢迎!尽量注意缩进,并在编码上保持一致。它将帮助您和任何查看您的代码的人获得更流畅的体验。而且,除非你是大师级人物(甚至是大师级人物),否则不要“保存”分号=始终使用分号。另外,正如其他人所说:您的代码对我们有效-向我们展示您发送给函数的内容-问题可能就在那里…如果您不创建或使用映射数组,使用映射有什么意义?为什么不使用Array.forEach()?@user1599011确定您可以使用
forEach()
。它也会起同样的作用。这要视情况而定。你必须知道地图和地图的区别
forEach()
表现为一个
纯函数
并返回相同的数组,而
map
则返回一个全新的数组作为结果。但在这种情况下,这并不重要。您也可以使用
forEach
;它执行回调中的代码。Array.map()返回一个数组,但由于该数组不会被使用,我不认为使用map()有什么意义。是的,在这种情况下,如果您担心性能,那么在这种情况下应该使用
forEach()
let sum = 0;
// nums can be any array
let nums = [1, 2, 3, 4];

nums.forEach(num => {
    if (num % 2 === 1) {
    sum = sum + num
 }})

console.log(sum)