Невозможно нажать на массив, который находится внутри объекта - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь поместить некоторые вещи в массив, который живет внутри моего объекта.Дело в том, что он работает, но когда я просматриваю объект, массив остается пустым, даже если я нажимаю.

function add(){
    addItem = prompt("Where would you like to add this item to?")

    kitchen.forEach(function(item){
        if (addItem == item.belongsTo["fruits"]) {
            itemAdded = prompt("What would you like to add?");
            item.items[0].push(itemAdded);
        }else if(addItem == item.belongsTo["veggies"]){
            itemAdded = prompt("What would you like to add?");
            item.items[1].push(itemAdded);
        }
    });
}

function showKitchen(){
    kitchen.forEach(function(list){
        console.log(list);
    });
}

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

  var kitchen = [ 
    { belongsTo: "fruits", items: [] },
    { belongsTo: "veggies", items: [] } 
    ]
    
  function add(){
    var addItem = prompt("Where would you like to add this item to?");
    if(addItem == "fruits"){
      var item = prompt("What would you like to add?");
      kitchen[0].items.push(item);
    }
    else if(addItem == "veggies"){
      var item = prompt("What would you like to add?");
      kitchen[1].items.push(item);
    }
    // console.log(kitchen);
    showKitchen();
  };

  function showKitchen(){
    kitchen.forEach(function(list){
        console.log(list);
    });
}
add();
0 голосов
/ 07 апреля 2019

Я просто реструктурировал объект kitchen, чтобы вам не нужно было каждый раз зацикливаться для добавления элемента.

// persist items with count
const kitchen = {
  fruits: {},
  veggies: {}
};

function addItemToKitchen() {
  const group = prompt("Where would you like to add this item to?");
  if (group) {
    const itemToAdd = prompt(`What would you like to add in kitchen(${group}?`);

    if (itemToAdd) {
      // pick the group if found or create one
      kitchen[group] = kitchen[group] || {};
      // add item to group
      kitchen[group][itemToAdd] = (kitchen[group][itemToAdd] || 0) + 1;

      showKitchen();
    }
  }
}

function showKitchen() {
  Object.entries(kitchen).forEach(([group, items]) => {
    console.log(group, ':');
    Object.entries(items).forEach(([item, count]) => {
      console.log(`\t${item}(${count})`);
    });
  });
}
<button onclick="addItemToKitchen()">Add Item</button>
<button onclick="showKitchen()">Show Kitchen List</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...