向对象数组中添加新对象

adding new object to an object array javascript

本文关键字:对象 新对象 添加 数组      更新时间:2023-09-26

我解决了这个问题。你是对的,我正在运行一个函数,这是问题。如果有人想看看解决方案,我附在下面。这不是为了好看,只是为了函数。谢谢你至少看了一眼。更清楚地回答问题。这是一个调试任务,因为我正在努力通过学校完全理解。就像我说的,我不是在找任何人来帮我解决问题只是为了指导我,让我自己解决问题。我在开发者社区中遇到的大多数人都非常有帮助,所以我只是想在我的新努力中寻求帮助。谢谢你们所有人的帮助。同样,我已经完全解决了所有10个错误,这就是//错误#所涉及的问题,并且相信将收到100%的错误。我知道调试可能看起来像是初学者和平凡的,但我们都曾经是初学者。同样,如果有人想玩,下面是已解决项目的链接,并附有已解决和未解决项目的副本。这样,我就对刚才提出的问题有了好处。

https://www.dropbox.com/sh/vngg7j478h6zgcv/SVZF1bep6w

对象数组:

var flavors = [
{
    "flavor": "Vanilla",
    "favorite": "Yes!",
    "notes": "Great for sundaes."
},
{
    "flavor": "Chocolate",
    "favorite": "Yes!",//first error
    "notes": "All parts chocolate. What's not to love?"
},
{
    "flavor": "Neapolitan",
    "favorite": "No",
    "notes": "I dislike the strawberry chunks."
}
];

代码将表单数据推入数组:

var saveFlavor = function(){
var fav = getFavorite();   
//error 5 not fixed
var newFlavor = function() {
    flavors.flavor = document.getElementById('flavor').value,
    flavors.favorite = fav, //error 6 not fixed 
    flavors.notes = document.getElementById('notes').value //error 7
    };
    flavors.push(newFlavor);
    console.log(newFlavor)
    location.href="#home";
    document.getElementById('list').innerHTML = "";
};
var save = document.getElementById("submitFlavor"); //error 8
save.addEventListener("click", saveFlavor);

数据调用与:

var showFlavors = function(){
for(var i=0, len=flavors.length; i<len; i++){ //error 2
    var newLi = document.createElement('li');   
    document.getElementById('list').appendChild(newLi);
      var heading =document.createElement('h3');
          heading.innerHTML = flavors[i].flavor;
          newLi.appendChild(heading);
  var pNotes = document.createElement('p');
          pNotes.innerHTML= flavors[i].notes;
          newLi.appendChild(pNotes);
  var pFav = document.createElement('p');
        if(flavors[i].favorite == "Yes!") {
            flav = "Yes";
            } else if (flavors[i].favorite == "No") {
            flav = "No";
    };
    console.log(flav)
    pFav.innerHTML= flav; //error 3 
    newLi.appendChild(pFav);
    console.log(newLi); 
};

};

它将push到Array,但返回Undefined如果您需要查看更多,我还将此代码放在这里。https://www.dropbox.com/sh/ee0usbthykoqllg/cZi_K6zst2

我在这个调试过程中修复了其他一切,但是我在解决为什么我返回未定义时遇到了麻烦。我不指望别人给我答案,我在寻找指导,我做错了什么。当我开始的时候,它根本不起作用,我已经修复了其余的东西,只需要帮助。谢谢。

newFlavor不是对象,它是函数。下面是创建对象的方法:

var newFlavor = {
    flavor: document.getElementById('flavor').value,
    favorite: fav, //error 6 not fixed 
    notes: document.getElementById('notes').value //error 7
};