Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Frontend_Logic - Fatal编程技术网

如何在javascript中计算数组值之和

如何在javascript中计算数组值之和,javascript,arrays,frontend,logic,Javascript,Arrays,Frontend,Logic,我是编程新手,在javascript(vue)中进行数组处理时遇到困难 交易如下:我有26个数组,每个数组有4个元素(值:a、b、c、d) 我必须根据其索引对值求和,例如: {c,d,b,a}=c=4,d=3,b=2,a=1 最后,我必须有一个数组,包含所有这26个对象的总和,例如: [a=104,b=78,c=52,d=26] 我目前拥有的: Array(26) [ (4) […], (4) […], (4) […], (4) […], (4) […], (4) […], (4) […], (

我是编程新手,在javascript(vue)中进行数组处理时遇到困难

交易如下:我有26个数组,每个数组有4个元素(值:a、b、c、d)

我必须根据其索引对值求和,例如:

{c,d,b,a}=c=4,d=3,b=2,a=1

最后,我必须有一个数组,包含所有这26个对象的总和,例如: [a=104,b=78,c=52,d=26]

我目前拥有的:

Array(26) [ (4) […], (4) […], (4) […], (4) […], (4) […], (4) […], (4) […], (4) […], (4) […], (4) […], … ]

编辑:26个对象数组中的对象具有不同顺序的值和描述{b,a,d,c},{a,d,b,c},{a,b,c,d}。。。索引有“点”(要求和的值),即:第一个索引=4点,第二个索引=3点,第三个索引=2点,最后一个索引=1点。我必须对每个索引的值求和,并将结果放入一个数组中

因此,我的预期结果数组是(例如):

Edit2:对不起,伙计们,一开始我不明白你们的要求。 我的简化输入数组:

Array(3) [
[
    {value: "a", description: "..."},
    {value: "b", description: "..."},
    {value: "c", description: "..."},
    {value: "d", description: "..."}
], 
[
    {value: "a", description: "..."},
    {value: "b", description: "..."},
    {value: "c", description: "..."},
    {value: "d", description: "..."}
], 
[
    {value: "a", description: "..."},
    {value: "b", description: "..."},
    {value: "c", description: "..."},
    {value: "d", description: "..."}
]]
我认为这更像是一个逻辑问题,但我被困在这个问题上了

提前谢谢

要解释(可能不是很清楚)它的作用:

对于每个内部数组,它取每个对象并将其转换为类似['a',3]的数组,其中'a'是对象的值,3是4减去其索引(因此内部数组中四个位置的分数应该是4,3,2,1)。然后将内部阵列展平,以便这些新阵列在阵列中处于同一级别。这些新数组通过reduce进行处理,将分数与存储在数组中的值相加

const数据=[
[{value:'a'},{value:'b'},{value:'c'},{value:'d'}],
[{value:'b'},{value:'c'},{value:'d'},{value:'a'}]
];
常数res=数据
.flatMap((分数)=>scores.map({value},i)=>[value,4-i]))
.减少(
(acc[key,score])=>Object.assign(acc,{[key]:acc[key]+score}),
{a:0,b:0,c:0,d:0}
);

控制台日志(res)您能给出示例输入和预期输出吗?我不清楚你到底想做什么。嗨,你有数组或对象数组?我看到了预期的输出,但样本输入在哪里?@YashMaheshwari是的“没有输入,我必须处理26个对象的数组…”-“对象数组”正是我们都在问的输入。这是你的算法的输入。你已经用文字描述了它,但是你没有给出一个完整的例子。对不起,我一开始没有提出一个正确的问题,我在帖子上做了一个编辑,但是你的回答与我的非常接近need@gelene5745编辑看起来怎么样?救生圈!谢谢lottttttt@gelene5745如果此答案解决了您的问题,请将其标记为已接受答案(箭头下方左侧的复选标记)
[a = 104, b = 78, c = 52, d = 26]
Array(3) [
[
    {value: "a", description: "..."},
    {value: "b", description: "..."},
    {value: "c", description: "..."},
    {value: "d", description: "..."}
], 
[
    {value: "a", description: "..."},
    {value: "b", description: "..."},
    {value: "c", description: "..."},
    {value: "d", description: "..."}
], 
[
    {value: "a", description: "..."},
    {value: "b", description: "..."},
    {value: "c", description: "..."},
    {value: "d", description: "..."}
]]