Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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_Node.js - Fatal编程技术网

Javascript 是否将变量添加到数组对象?

Javascript 是否将变量添加到数组对象?,javascript,node.js,Javascript,Node.js,昨天我收到了一些帮助,通过我的var arr循环并在系统中搜索.png文件。使用以下代码: const fs = require('fs'); const path = require('path'); const imageDir = '/var/scraper/public/images/flags/'; var filesExist = arr.map((imgObj) => { const imgfile = imgObj.country; let fileP

昨天我收到了一些帮助,通过我的var arr循环并在系统中搜索.png文件。使用以下代码:

 const fs = require('fs');
 const path = require('path');
 const imageDir = '/var/scraper/public/images/flags/';

 var filesExist = arr.map((imgObj) => {
   const imgfile = imgObj.country;
   let filePath = path.join(imageDir, imgfile + ".png");
   //console.log('Checking existance of file: ', filePath);
   return { Logopath: fs.existsSync(filePath) ? filePath: path.join(imageDir, "noimage.png")};
});

console.log(filesExist);
这很好,但是在我的server.js文件(不包括在这里)的末尾,我将var arr中的所有数据写入mongodb,以供以后访问

我还需要将存储在新var fileexist中的数据写入mongodb。因此,我认为最好的解决方案是将fileexist中的数据添加到var arr中

在阅读了一些谷歌搜索之后,我尝试了一些类似的东西

arr["Logopath"] = filesExist;   
但这是行不通的

我也试过这个

arr.unshift({
    Logopath: filesExist
});
这是半工作状态,但会增加数组的大小,并向其中输入大量未定义的值


如何将var fileexist info中的数据添加到arr[“Logopath”]

只需执行
imgObj.Logopath='…'

你想要的不是
arr[“Logopath”]
,而是
arr[i][“Logopath”]
每个
i
。而
imgObj
arr[0]
然后
arr[1]
等等


在这种情况下,
forEach
map
更合适。

我将在这里回答我自己的问题,但我要感谢Ben West为我指明了正确的方向:

for (var i = 0; i < filesExist.length; i++) {
    arr[i]["Logopath"] = filesExist[i]
}
for(var i=0;i

适用于我…

您似乎将数组与对象混淆了。它们不是一回事。第一次尝试将“arr”视为对象。第二次尝试将其视为包含对象的数组。(据我所知,FileExist首先是从arr读取其信息,因此不清楚将该数据添加回arr的目的是什么?)当您
console.log(FileExist)
时,您看到了什么?您应该看到一个对象数组,每个对象都有一个设置为文件路径的属性
Logopath
。为什么要将此添加到
arr
?你打算如何处理这些数据?这看起来像是一个…嗨,在控制台中,它返回文件路径,当我执行console.log fileexist.length时,它返回大约300@Daniel Beck是的,你是对的,我把它们弄糊涂了。我确实希望数据从fileexist进入arr[“Logopath”]=fileexist;@Mike McCaughan嗨这不是xy的问题。我的所有数据都存储在arr var中,如果文件路径存储在同一个var中,那就太好了。您好,谢谢您的回复。是的,我希望logopath中的每一行都存储在我的arr中。您介意显示一个示例吗,因为我不太确定我将如何处理这个问题