2013-05-12 32 views
0

이 문제가 해결되었습니다. 당신 말이 맞아요. 문제였던 기능을 실행하고 있었어요. 누구든지 솔루션을 살펴 보려면 아래에 첨부했습니다. 이것은 단지 멋지게 보이는 것을 의미하지 않았습니다. 적어도 그것을 보시고 고맙습니다. 그리고 질문에 더 명확하게 대답하십시오. 이것은 학교를 통해 완전한 이해를 향해 노력하면서 디버깅 과제였습니다. 내가 말했듯이, 나를 풀어줄 누군가를 찾고있는 것이 아니 었습니다. 개발자 커뮤니티에서 다루어 온 대부분의 사람들은 도움이되었으므로 새로운 시도에서 도움을 얻고 싶었습니다. 그 도움에 감사드립니다. 다시 말하자면 // 오류 #가 무엇인지 100 %의 오류를 완전히 해결했습니다. 디버깅이 아마도 초보자와 평범한 사람으로 보일지는 모르겠지만 우리는 모두 초보자였습니다. 다시 한 번 해결 된 프로젝트에 대한 링크는 누군가가 플레이하고 싶다면 해결 된 프로젝트와 미해결 된 프로젝트의 복사본입니다. 이 방법을 사용하면 질문을받는 데 도움이됩니다.객체 배열에 새 객체 추가 javascript

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

개체 배열 :

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); 
}; 


}; 

:와에 호출

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 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." 
} 
]; 

코드 배열로 푸시하지만 반환 값은 정의되지 않았습니다. 자세한 내용은이 코드를 여기에 놓았습니다. https://www.dropbox.com/sh/ee0usbthykoqllg/cZi_K6zst2

그러나이 디버깅 프로세스에서 다른 모든 것들이 수정되었지만 왜 내가 정의되지 않은 상태로 돌아가는지 해결하는 데 문제가 있습니다. 나는 나에게 답을주는 사람을 보지 않고, 내가 뭘 잘못하고 있는지에 대한 지침을 찾고있다. 제가 시작했을 때 전혀 작동하지 않았고, 나머지 부분을 고쳐서 이것으로 도움이 필요했습니다. 감사.

+1

당신이 [라이브 데모]로 코드의 최소/[SSCCE] (http://sscce.org/) 재생을 던질 수 없습니다 (HTTP : // jsfiddle이 객체를 만드는 방법이다. net /)을 사용하여 페이지/데모를 재생산하지 않고도 재생할 수 있습니다. 그리고 덧붙여 말하자면,'//error 5'와'// error 8' 주석은 무엇입니까? –

+0

"너무 현지화 된"것으로 결론을 내리기 위해 앞으로 다른 사람들에게 도움이 될 수 있도록이 코드에는 많은 문제가 있습니다. JavaScript에 대한 몇 가지 자습서를 읽는 것이 좋습니다. – James

답변

1

newFlavor은 개체가 아닙니다.

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

함수는 자바 스크립트의 객체입니다. 그렇습니까? ;) – meze

+0

@meze'typeof function() {return 1}'은 "function"을 반환합니다. – Barmar

+0

@Barmar 그런 기술을 원한다면'(function() {}) instanceof Object'는'true'를 반환합니다. meze는 코멘트에';)'을 붙였습니다. 즉, 함수가 문자 그대로 객체라는 것을 의미하지 않았습니다. 분명히 뭔가가 있습니다. – Ian