2014-02-20 4 views
0

Я создал это приложение для супермаркетов с 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(); 
+0

Используйте карту 'content -> aisle', а не карту' aisle -> contents'. Затем вы можете получить прохождение определенной категории с помощью 'safeway [list [i] .category] .aisle' (при условии, что категория существует, конечно же, вам, вероятно, следует учитывать и несуществующие категории). –

ответ

0

Вы можете сделать объект безопасности с ключом содержимого (категории) и номером прохода для поиска прохода по содержимому (категории) (при условии, что категория может быть только в одном проходе).

А список в вашем коде может быть массивом.

var safeway = {}; 

safeway['fresh produce'] = 'Aisle 1'; 

safeway['meat and seafood'] = 'Aisle 2'; 

var list = []; 

var li = 'beef'; 
var liCategory = 'meat and seafood'; 

list.push({ 
    item: li, 
    category: liCategory 
}); 

li = 'some item'; 
liCategory = 'some category'; 

list.push({ 
    item: li, 
    category: liCategory 
}); 

function match(items, store) { 
    var foundAisle; 
    var item; 
    for (var i = 0; i < items.length; i++) { 
     foundAisle = store[items[i].category]; 
     item = items[i].item; 
     if (foundAisle) { 
      console.log("The " + item + " is in " + foundAisle); 
     } else { 
      console.log("The " + item + " is not found"); 
     } 
    } 
}; 

match(list, safeway); 

The beef is in Aisle 2 
The some item is not found 
0

Вы используете "safeway" как объект JavaScript. Я бы сказал, что формат JSON - это более эффективный способ хранения данных. Чтобы вы могли легко проанализировать свои огромные данные с помощью jQuery или PHP и т. Д.

Смежные вопросы