我用JavaScript创建了这个超市应用程序。它有一个预定义的过道信息。用户然后给脚本3个项目和他们所属的类别。如果某个类别符合预先定义的类别之一,该脚本会告诉您您的物品所在的位置。Javascript超市测试应用程序
我想知道是否有更多有效的方式来循环,存储和比较这些数据?我应该在这里使用数组还是对象?
var safeway = {};
safeway.aisle1 = {
contents: "fresh produce",
aisle: "Aisle 1"
};
safeway.aisle2 = {
contents: "meat and seafood",
aisle: "Aisle 2"
};
safeway.aisle3 = {
contents: "dairy",
aisle: "Aisle 3"
};
safeway.aisle4 = {
contents: "snacks",
aisle: "Aisle 4"
};
safeway.aisle5 = {
contents: "beverages",
aisle: "Aisle 5"
};
safeway.aisle6 = {
contents: "frozen foods",
aisle: "Aisle 6"
};
safeway.aisle7 = {
contents: "condiments and ingredients",
aisle: "Aisle 7"
};
li1 = prompt("List Item 1");
li1Category = prompt("What category does this item belong to?");
li2 = prompt("List Item 2");
li2Category = prompt("What category does this item belong to?");
li3 = prompt("List Item 3");
li3Category = prompt("What category does this item belong to?");
var list = {};
list.item1 = {
item: li1,
category: li1Category
};
list.item2 = {
item: li2,
category: li2Category
};
list.item3 = {
item: li3,
category: li3Category
};
var match = function() {
for(var i in list) {
for(var x in safeway) {
if(list[i].category === safeway[x].contents) {
console.log("The " + list[i].item + " is in " + safeway[x].aisle);
}
}
}
};
match();
使用'contents - > aisle'地图,而不是'aisle - > contents'地图。然后,您可以通过'safeway [list [i] .category] .aisle'获取特定类别的过道(假设类别当然存在,您应该也可以考虑不存在的类别)。 –