Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.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/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/NodeJS中串联未知数量的数组_Javascript_Arrays_Node.js - Fatal编程技术网

在Javascript/NodeJS中串联未知数量的数组

在Javascript/NodeJS中串联未知数量的数组,javascript,arrays,node.js,Javascript,Arrays,Node.js,我的一个控制器中有一个函数,我在其中填充一个文档的引用数组,当填充时,文档本身就嵌入了数组 下面是一个例子: mongoose填充函数为我提供了一个对象数组。每个对象中都有一个数组: [{name:Test,array:[1,2,3,4,5]},{name:TestAgain,array:[1,2,3,4,5]},{name:Test^3,array:[1,2,3,4,5]},{ 所需的输出将是: [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,…] 我需要连接填充引用中的所有“数

我的一个控制器中有一个函数,我在其中填充一个文档的引用数组,当填充时,文档本身就嵌入了数组

下面是一个例子:

mongoose填充函数为我提供了一个对象数组。每个对象中都有一个数组:

[{name:Test,array:[1,2,3,4,5]},{name:TestAgain,array:[1,2,3,4,5]},{name:Test^3,array:[1,2,3,4,5]},{

所需的输出将是:

[1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,…]

我需要连接填充引用中的所有“数组”。在不知道有多少个数组的情况下,如何连接

以下是(通常)我的函数的外观,以供参考:

exports.myFunctionName = function ( req, res, next )

Document.findOne({ 'document_id' : decodeURIComponent( document_id )}).populate('array_containing_references').exec(function( err, document) 
{
   //Here I need to concatenate all of the embedded arrays, then sort and return the result as JSON (not worried about the sorting).
});

假设您的输入位于
文档
变量中,请尝试以下操作:

var output = document.reduce(function (res, cur) {
  Array.prototype.push.apply(res, cur.array);
  return res;
}, []);
或者这个:

var output = [];
document.forEach(function(cur) {
  Array.prototype.push.apply(output, cur.array);
});

您希望获取每个文档并使用其中的一个属性执行某些操作。听起来这是一个很好的使用案例

map
将获取每个文档的
array
值,并返回这些值的数组。但是,您不需要嵌套数组,因此我们只需使用
array.prototype.concat
将其展平。您还可以使用类似于
flatte
的方法

var a=[
{name:'test1',数组:[1,2,3,4,5]},
{name:'test2',数组:[1,2,3,4,5]},
{name:'test3',数组:[1,2,3,4,5]}
];
var results=Array.prototype.concat.apply([],a.map(函数(doc){return doc.Array;}));

document.body.innerHTML=results;
一点也不清楚。至少简化两个因素(因为看起来你想要的是非常简单的东西)。显示输入、所需的输出以及你迄今为止尝试过的内容。添加。希望这有帮助。@RobG-是的..这是事后的想法…修复