合并和总结在多个阵列中的值

编程入门 行业动态 更新时间:2024-10-23 06:31:49
本文介绍了合并和总结在多个阵列中的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

所有相关的code为这里提供 jsfiddle/DuWGj/ ,以及打印(appendTo)语句。

All the relevant code is provided here jsfiddle/DuWGj/ , as well as print(appendTo) statements.

要尽量简短,我正在做4阵列。每个阵列有4个数字。然后,我创建具有它内部的所有那些4阵列数字一个新的数组,所以它是一个阵列。

To keep it short, I'm making 4 arrays. Each array has 4 numbers. Then I create a new array that has all those 4 arrays numbers inside of it, so it's one array.

例如最终的结果是

four.myArraysCombined = [5,3,20,12,3,4,18,11,12,5,8,2,1,9,10,6];

然而,当我尝试

four.myArraysCombined [3] ,它说这是不确定的。

four.myArraysCombined[3] , it says it's undefined.

所以很明显,当我这样做这是行不通的。

so obviously when I do the following it doesn't work

var total = 0; for (var x = 0; x < 16; x++) { total += four.myArraysCombined[x]); }

我期待能够将所有这些数字与相加的循环。我试过几件事情,但它一直给我不确定或NaN。

I'm looking to be able to add all those numbers together with a for loop. I've tried several things but it keeps giving me undefined or NaN.

推荐答案

运行后:

prePickNumbers(four, 4, 40, 20, 1);

... four.myArraysCombined 的值是:

[[[2, 17, 20, 1], [7, 2, 20, 11], [7, 14, 3, 16], [12, 17, 3, 8]]]

在换句话说,它是不是你要求它是结果。你应该确认你有,你认为你做的在过程中的每一步的,在移动之前的结果。既然这样,你不会有一个扁平的数组。你需要解决这个问题,然后再转移到迭代和总结。

In other words, it is not the result that you claim it is. You should verify that you have the result that you think you do at each step of the process, before moving on. As it stands, you do not have a flattened array. You need to fix that first and then move on to iterating and summing.

究其原因,最终结构开始在下面的行 prePickNumbers :

The reason for the final structure starts at the following line in prePickNumbers:

tempMyArraysCombined.push(objName.myArray[x]);

您正在推动一个的阵列的到另一个阵列中的每个时间,所以循环之后的结果是数组的数组。但是,这时,你推的是的结果到另一个数组:

You're pushing an array into another array each time, so the result after the loop is an array of arrays. But, then, you push that result into another array:

objName.myArraysCombined.push(tempMyArraysCombined);

所以,最后的结果实际上是一个包含数组的数组(注意额外的设置输出括号以上)的阵列。问题是,你推整个数组到您的输出在过程中的每一步,这是创建一个嵌套的一塌糊涂。你应该推的元素的每个阵列,而不是数组本身。的

So the final result is actually an array containing an array of arrays (notice the extra set of brackets in the output above). The problem is that you're pushing an entire array into your output at each step in the process, which is creating a nested mess. You should be pushing elements of each array, not the arrays themselves.

下面是一个可能的解决方案。替换 prePickNumbers 具有以下功能:

Here is one possible solution. Replace prePickNumbers with the following function:

function prePickNumbers(objName, theNum, theSumNum, theMaxNum, theMinNum) { var tempMyArraysCombined = []; for (var x = 0; x < theNum; x += 1) { pickNumbers(objName.myArray[x], theNum, theSumNum, theMaxNum, theMinNum); for (var j = 0; j < objName.myArray[x].length; j++) { objName.myArraysCombined.push(objName.myArray[x][j]); } } }

更多推荐

合并和总结在多个阵列中的值

本文发布于:2023-11-22 18:34:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1618535.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   阵列

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!