将新对象添加到对象数组javascript

时间:2013-05-12 17:25:13

标签: javascript arrays object

我解决了这个问题。你是对的我正在运行一个功能,这是问题所在。如果有人想看看我在下面附上的解决方案。这从来没有意味着只是功能。谢谢你至少看一下。并更清楚地回答问题。这是一项调试任务,因为我正在努力通过学校完全理解。正如我所说,我不是在寻找任何人来为我解决,只是为了引导我,所以我可以解决自己。我在开发者社区中处理过的大多数人都非常乐于助人,所以我只是想在我的新工作中寻求帮助。谢谢大家的帮助。我再次完全解决了所有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); 
};


};

它确实推送到Array但返回Undefined  如果您需要了解更多信息,我还会在此处将此代码下载。 https://www.dropbox.com/sh/ee0usbthykoqllg/cZi_K6zst2

我在此调试过程中修复了其他所有内容但是我无法解决为什么我返回undefined。我不是在看某人给我答案,我正在寻找关于我做错的指导。当我开始时它根本不起作用,我已经修复了其余部分,只需要帮助。感谢。

1 个答案:

答案 0 :(得分:1)

newFlavor不是一个对象,它是一个函数。这是您创建对象的方式:

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