Javascript 数组节点js的数组
我正在做一个Api调用来接收一些关于我跟踪的用户的数据。 目前,我收到这样的东西[{obj1},{obj2},{obj3}],我想要这样的东西[{obj1},{obj2},{obj3}]。因为一个用户可以有多个对象Javascript 数组节点js的数组,javascript,arrays,Javascript,Arrays,我正在做一个Api调用来接收一些关于我跟踪的用户的数据。 目前,我收到这样的东西[{obj1},{obj2},{obj3}],我想要这样的东西[{obj1},{obj2},{obj3}]。因为一个用户可以有多个对象 getDashboard = function (req, res) { User.findById(req.params.id, function (err, user) { if (!user) { res.send(404, 'Us
getDashboard = function (req, res) {
User.findById(req.params.id, function (err, user) {
if (!user) {
res.send(404, 'User not found');
}
else {
var a = user.following;
var promises = a.map(function(current_value) {
return new Promise(function(resolve, reject) {
Receta.find({"user_id":current_value._id}, function (err, recetas) {
if(!err) {
resolve(recetas);
} else {
reject(err);
}
});
});
});
Promise.all(promises).then(function(allData) {
var proms = allData.map(function(value){
return value
});
res.send(proms);
}).catch(function(error) {
res.send(error);
});
}
});
};
编辑我不太确定这是问题所问的,但这是我的解释
所以你想展平一个数组?让我们首先构建一个函数,该函数接受嵌套数组并将其展平到单个级别,如下所示:
function flatten(arr){
var result = [];
arr.forEach(element => (
result = result.concat(element);
));
return result;
}
现在,如果我们有一个3D数组,比如[[[“hi”]]]
,该怎么办。然后,我们需要将其展平多次。事实上,我们可以递归地这样做
function flatten(arr){
var result = [];
arr.forEach(element => (
result = result.concat(Array.isArray(element) ? flatten(element) : element)
));
return result;
}
每次,我们都可以使用array.isArray()
检查它是否是一个数组,如果是,则在追加之前将其展平。我们可以递归地编程
function flatten(arr){
var result = [];
arr.forEach(element => (
result = result.concat(Array.isArray(element) ? flatten(element) : element)
));
return result;
}
这就是我们的最终答案。通过第二个函数,我们可以看到flatten([“hi”,“there”]])
可以工作。您可以使用ES6
var数据=[“一”、“二”、“三”、“四”、“五”];
结果=[].concat(…数据);
控制台日志(结果);
如果一个用户可以有多个对象,则所需的格式将无法表示该对象。“allData.map(function(value){return value})
”应该做什么?您想展平数组。用谷歌搜索一下。我的意思是现在我有这样的东西[“一”,“二”,“三]],我想要这个[“一”,“二”,“三”]是的,那么这个答案是给你的:)