昨天我收到了一些循环浏览我的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 filesExist中的数据写入mongodb。所以我认为最好的解决方案是将filesExist中的数据添加到var arr中。
在阅读了一些谷歌搜索后,我尝试了一下这个
arr["Logopath"] = filesExist;
但这不起作用
我也试过这个
arr.unshift({
Logopath: filesExist
});
哪个是半工作但这增加了数组的大小并输入了大量未定义的值。
如何将var filesExist信息中的数据添加到arr [“Logopath”]?
答案 0 :(得分:2)
只需imgObj.Logopath = '...'
。
它不是arr["Logopath"]
你想要的,而arr[i]["Logopath"]
代表i
。 imgObj
为arr[0]
,然后是arr[1]
,依此类推。
forEach
会比map
更合适。
答案 1 :(得分:0)
我会在这里回答我自己的问题,但我要感谢 Ben West 指出我正确的方向:
for (var i = 0; i < filesExist.length; i++) {
arr[i]["Logopath"] = filesExist[i]
}
适合我...