[英]Trying to loop through an array of objects to populate arrays with data in objects
我正在编写一个节点脚本来收集多个硬盘驱动器上的一堆文件名和位置。 问题是我正在尝试使用循环拨入对象的“dirs”数组,因此不必为 dirs[i].tv、dirs[i].movies、dirs[i].images 等编码对于数组中的每个对象,我将有一个循环的 ["tv", "movies", "images, "etc"] 数组。我最终得到了类似“dirs[i].n”和“n”的东西" 是循环定义的变量,但这是不起作用的问题。由于对象中未定义“n”,因此脚本返回错误
下面是我正在使用的代码
var dirs = [
{
name: "C",
loc: "C:/",
tv: undefined,
movies: undefined,
images: "Users/'Master William'/Pictures/",
music: undefined,
torrents: undefined,
porn: undefined
},
{
name: "D",
loc: "D:/",
tv: "Video/TV/",
movies: "Video/Movies/",
images: "images/pics/",
music: "Music/",
torrents: "Torrents/",
porn: undefined
},
{
name: "I",
loc: "I:/",
tv: "Users/heliu/Videos/TV/",
movies: "Users/heliu/Videos/Movies/",
images: "Users/heliu/Desktop/Will/Pics/",
music: "Users/heliu/Music/",
torrents: undefined,
porn: "Users/heliu/Videos/Pr0n/"
},
{
name: "J",
loc: "J:/",
tv: "Video/TV/",
movies: "Video/Movies/",
images: "Pics",
music: "Tunes/",
torrents: undefined,
porn: "Pornography/"
}
]
const fs = require("fs");
var tvArr = [];
var moviesArr = [];
var imagesArr = [];
var musicArr = [];
var torrentsArr = [];
var pornArr = [];
var mediaArr = ["tv", "movies", "images", "music", "torrents", "porn"];
var arrArr = [tvArr, moviesArr, imagesArr, musicArr, torrentsArr, pornArr];
for( var i = 0; i < dirs.length; i++){
let o = dirs[i].loc;
for( var j = 0; j < mediaArr.length; j++){
let n = mediaArr[j];
if(dirs[i].n !== undefined){
let x = dirs[i].loc+dirs[i].n;
fs.readdirSync(x).forEach(file => {
arrArr[j].push(file);
})
}
}
}
我将媒体阵列更改为
var mediaArr = [dirs[i].tv, dirs[i].movies, dirs[i].images, etc..]
并将其限定在循环内,以便它可以识别“i”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.