所以我们的目标是得到这样的字符串:如何使用JavaScript从多维对象数组构建URL?
somesite.com/-%20Luzon%20-/Bicol%20Region/Albay/Busay%20Falls/Busay_falls_10.jpg
所以我开始建立对象数组多维的事情,我不知道你会如何使用的名称来建立网址阵列组。
var photoArray = {},
islandGroups = ["- Luzon -", " - Visayas -", "-Mindanao-"],
luzonRegions = ["Bicol Region", "Cagayan Valley", "Calabarzon", "CAR", "Central Luzon", "Ilocos Region", "Mimaropa"],
bicolProvinces = ["Albay", "Camarines Norte", "Camarines Sur", "Catanduanes", "Masbate", "Sorsogon"],
albayProvinceTravelDestinations = ["Busay Falls", "Hoyop-Hoyopan Cave", "Lignon Hill", "Malabsay Falls", "Mt Mayon", "Panicuason Hot Spring Resort", "Vera Falls"];
busayFallsPhotoPattern = ["Cover, Busay_falls_"];
busayFallsPhotoPatternID1 = [""];
busayFallsPhotoPatternID2 = ["1", "1_2", "10", "2", "2_2", "3", "3_2", "4", "4_2", "6", "7", "8", "9"];
baseURL = "somesite.com";
/* build sub-array */
var islandGroupsArrayLength = islandGroups.length;
for (var i = 0; i < islandGroupsArrayLength; i++) {
photoArray[islandGroups[i]] = {};
}
var luzonRegionsLength = luzonRegions.length;
for (var i = 0; i < luzonRegionsLength; i++) {
photoArray["- Luzon -"][luzonRegions[i]] = {};
}
var bicolProvincesLength = bicolProvinces.length;
for (var i = 0; i < bicolProvincesLength; i++) {
photoArray["- Luzon -"]["Bicol Region"][bicolProvinces[i]] = {};
}
var albayProvinceTravelDestinationsLength = albayProvinceTravelDestinations.length;
for (var i = 0; i < albayProvinceTravelDestinations; i++) {
photoArray["- Luzon -"]["Bicol Region"]["Albay"][i] = {};
}
/* build string before converting space to %20% */
/*
busayFallsPhotoPattern = ["Cover, Busay_falls_"];
busayFallsPhotoPatternID1 = [""];
busayFallsPhotoPatternID2 = ["1", "1_2", "10", "2", "2_2", "3", "3_2", "4", "4_2", "6", "7", "8", "9"];
*/
var busayFallsPhotoPatternLength = busayFallsPhotoPattern.length,
busayFallsPhotoPatternID2Length = busayFallsPhotoPatternID2.length;
/* setup photoURLs array */
photoArray["- Luzon -"]["Bicol Region"]["Albay"]["Busay Falls"] = {};
photoArray["- Luzon -"]["Bicol Region"]["Albay"]["Busay Falls"]["busayFallsPhotoURLs"] = {};
photoArray["- Luzon -"]["Bicol Region"]["Albay"]["Busay Falls"]["busayFallsPhotoURLs"][0] = "Cover" + ".jpg";
console.log(photoArray.[0].[0].[0].[0].[0].[0]); // this doesn't work
也许明显,我的脑海里是那种不知所措的时刻
我也想知道如何建立这个更有效地/使用指针,所以你不必例如superLongNameLength。
编辑:
我想我知道什么是错的,第一你不concatinate。在JavaScript中,这是PHP和我想我必须顺序追加每个部分到一个字符串以获得URL后空格变成%20,但我仍然不知道这是否是最好的方式来做到这一点。
这是更接近,但仍然错误/详细,我得到最后的条目是有道理的,因为它们都具有相同的名称。
var islandGroups = ["- Luzon -", "- Visayas -", "-Mindanao"],
regions = {
"- Luzon -" : "Bicol Region",
"- Luzon -" : "Cagayan Valley",
"- Luzon -" : "Calabarzon",
"- Luzon -" : "CAR",
"- Luzon -" : "Central Luzon",
"- Luzon -" : "Ilocos Region",
"- Luzon -" : "Mimaropa"
},
provinces = {
"Bicol Region" : "Albay",
"Bicol Region" : "Camarines Norte",
"Bicol Region" : "Camarines Sur",
"Bicol Region" : "Catanduanes",
"Bicol Region" : "Masbate",
"Bicol Region" : "Sorsogon"
},
travelDestinations = {
"Albay" : "Busay Falls",
"Albay" : "Hoyop-Hoyopan Cave",
"Albay" : "Lignon Hill",
"Albay" : "Malabsay Falls",
"Albay" : "Mt Mayon",
"Albay" : "Panicuason Hot Spring Resort",
"Albay" : "Vera Falls"
},
photos = {
"Busay Falls" : "Cover.jpg",
"Busay Falls" : "Busay_falls_10.jpg",
"Busay Falls" : "Busay_falls_2.jpg",
"Busay Falls" : "Busay_falls_3.jpg",
"Busay Falls" : "Busay_falls_4.jpg",
"Busay Falls" : "Busay_falls_5.jpg",
"Busay Falls" : "Busay_falls_6.jpg",
"Busay Falls" : "Busay_falls_7.jpg",
"Busay Falls" : "Busay_falls_8.jpg",
"Busay Falls" : "Busay_falls_9.jpg"
};
console.log(islandGroups[0]+regions["- Luzon -"]+provinces["Bicol Region"]+travelDestinations["Albay"]+photos["Busay Falls"]);
请仔细阅读本和学习对象在JavaScript中是如何工作才去任何进一步的:https://开头developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects –
@ J.Titus是100%正确的,您需要停止正在做的事情并了解JS对象的工作方式。指针的提及具体告诉我你正在用一种截然不同的语言(C++,我假设),这意味着如果没有访问Mozilla开发者网络(https://开发者),你永远不会去任何地方。 Mozilla浏览器。org/en-US /)来检查他们的JS引用。 – gelliott181
@ J.Titus实际上有一个由Cloudinary专门做的命令,但我需要Node.js,我的方法也很笨,因为您需要知道文件夹中的内容。但是,我仍然不知道我到底在做什么是底线。 –