Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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 ReactJS:帮助调试?每个数组的和不是列_Javascript_Arrays_Reactjs - Fatal编程技术网

Javascript ReactJS:帮助调试?每个数组的和不是列

Javascript ReactJS:帮助调试?每个数组的和不是列,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,需要了解如何获取多个数组之和的帮助 这是我从console.log输出的数据: (4) [empty, Array(1), Array(1), Array(4)] 1: [50, 30] 2: [100, 100, 50] 3: (4) [500, 10, 50, 300] 预期产出: 1: [80] 2: [250] 3: [860] 使用的方法: 下面的代码不起作用,它只是每行的列 const savingsTotal = saveID[0].map((x, idx) => s

需要了解如何获取多个数组之和的帮助

这是我从console.log输出的数据:

(4) [empty, Array(1), Array(1), Array(4)]
1: [50, 30]
2: [100, 100, 50]
3: (4) [500, 10, 50, 300]
预期产出:

1: [80] 
2: [250] 
3: [860]
使用的方法:

  • 下面的代码不起作用,它只是每行的列

    const savingsTotal = saveID[0].map((x, idx) => saveID.reduce((sum, curr) => sum + curr[idx], 0));
    
  • 代码来源:

  • 这段代码给了我一个奇怪的字符串:

     const savingsTotal = saveID.reduce((sum, value) =>  sum += value, 0)
    
  • 输出:
    050100500,10,50300

  • 我想如果我列出一个可以使用的键,例如[saved:500],但是 它也没有起作用

     const savingsTotal = saveID.map(({saved}) => saved.reduce((sum, value) => sum += value, 0))
    
  • 输出:中断代码,无法找到[saved:500],因为之前的功能是:

      if (save.length > 0 ) { 
      const saveID = save.reduce((savedAmount, { goal_id, saved }) => {
        (savedAmount[goal_id] = savedAmount[goal_id] || []).push({"saved": saved});
        return savedAmount;
      }, []); ****Changed the .push so I would be able to add a key, normally it's without. 
    
    代码来源:

    有人能帮我解释一下逻辑吗?

    试试这个:

    让arr=[10,70],
    arr2=[10010050],
    arr3=[500,10,50,300]
    console.log(arr.reduce((总和,进位)=>总和+进位));
    console.log(arr2.reduce((总和,进位)=>总和+进位));
    
    console.log(arr3.reduce((总和,进位)=>总和+进位))通过原始数组映射。然后使用
    reduce
    获得各部分的总和:

    const ar=[[50,30]、[100,100,50]、[500,10,50,300];
    const sum_array=ar.map(item=>item.reduce((acc,val)=>acc+val,0))
    
    log(sum_数组)
    您可以在外部数组上循环,并使用
    reduce
    查找每个组成数组的总和

    const arr=[,[50,30],[100,100,50],[500,10,50,300];
    for(设i=0;iacc+curr,0));
    }
    
    }
    。在第一种情况下[50,30]应该是[80]而不是[70],第三种情况下[500,10,50,300]应该是[860]而不是[850]。是你搞错了还是我遗漏了什么?哎呀,糟糕,我一定是我的数学算错了。不确定你是否遗漏了键入的预期结果data.map(I=>I.reduce((a,b)=>a+b,0))我得到[0,80250860]解决方案比你尝试的要简单得多。只需使用
    (累加器,currentValue)=>累加器+currentValue减小即可。中的示例提供了一个求和示例。感谢您的回答!我会做每一个单独的数组,但是,我的程序希望将来有多个数组。我试图实现一个能产生多个数组之和的单数函数。好的,我可以为你们起草一个这样的函数。每个数组是否都在一个包含数组中?类似于:[[10,70],[100,100,50],[500,10,50,300]]函数在这个数组上运行后,它会给出另一个包含和的数组,比如[80250860]?如果没有,数据将如何结构化?让我知道,这样我就可以为您起草一个代码笔:)