2017-05-07 1 views
0

JSON 파일에서 객체 배열을 반환하는 대신 4 개의 객체가 포함 된 4 개의 배열을 반환합니다. 왜? JSON 파일 이름은 portfolios.json입니다.console.log (portfoliosArray) 때 배열 또는 네 배열을 반환합니까?

'use strict'; 

var portfolioArray = []; 

function Portfolio (portfoliosDataObj) { 
    this.title = portfoliosDataObj.title; 
    this.body = portfoliosDataObj.body; 
    this.img = portfoliosDataObj.img; 
} 

Portfolio.prototype.toHtml = function() { 
    var renderPortfolios = Handlebars.compile($('#portfolio-template').text()); 
    return renderPortfolios(this); 
    console.log(this); 
}; 

$.getJSON('/data/portfolios.json', function(portfolios) { 
    portfolios.forEach(function(portfoliosDataObject) { 
    var portfolio = new Portfolio(portfoliosDataObject); 
    portfolioArray.push(portfolios); 
    console.log(portfolios); 
    }); 
}); 

function print() { 
    portfolioArray.forEach(function(data) { 
    $('#portfolioSection').append(data.toHtml()); 
    }); 


} 

Portfolio(); 
print(); 

JSON 파일 - 참조 용으로 추가 중.

[{ 
    "title": "CodeFellows/Code201", 
    "body": "content1", 
    "img": "" 
}, 
{ 
    "title": "CodeFellows/Code301", 
    "body": "lorem ipsum" 
}, 
{ 
    "title": "Upcoming Projects/Other interest", 
    "body": "lorem impsum", 
    "img": "/images/blog.jpg" 

}, 
{ 
    "title": "Illustrations", 
    "body": "lorem ipsum", 
    "img": "/images/portfolio.png" 
}] 

게시하는 코드가 아닙니다 더 많은 콘텐츠를 필요 무시 .... 로렘 입숨의 슬픔은, AMET consectetur의 adipiscing의 ELIT 앉아. 텔 아비브 시설에서 레오를 지켜라. Aenean venenatis, quam semper efficitur hendrerit, odio diam condimentum odio, id sagittis lorem tellus 또는 mauris. 수컷 새끼, 수컷 새끼, 수컷 새우 등등. 정수 ID hendrerit nulla, vitae tristique tortor. 아멘은 아큐 멘에서 펄 비나 딕트 마트를합니다. 알칼리 말의 발효 물은 iaculis이다. Ut malesuada varius lacinia. Maecenas scelerisque facilisis mattis입니다.

+0

json 파일의 콘텐츠를 표시하십시오. – gaganshera

+0

@ gaganshera 파일을 추가했습니다. – Potluck

답변

0

파일은 배열이 아닌 개체 인 의 배열을 반환합니다.

{ 
    "title": "CodeFellows/Code201", 
    "body": "content1", 
    "img": "" 
} 

가 자바 스크립트 객체가 아니라 배열 (중괄호 {} 통지).
바깥 쪽은 배열입니다. (대괄호 []를주의하십시오).

당신은 문제가이 코드에있는 console.log(portfolios[0]);

+0

예.하지만 console.log (portfolioArray)를 반환하면 => [Array (4), Array (4), Array (4), Array (4)]가 반환됩니다. – Potluck

+0

응답에서 언급했듯이,'console.log (portfolios [0]);' – gaganshera

+0

과 같이하십시오. foreach 루프 전에 데이터를 얻은 직후 console.log를 수행하십시오. – gaganshera

0

를 수행하여 개체를 얻을 수 있습니다. portfolio 대신 portfolioArrayportfolios을 넣으려고합니다. 또한 포트폴리오를 위해 console.log을하고 있었기 때문에 4 개의 어레이를 보여주었습니다. 코드를 수정했습니다. 그것이 당신을 위해 작동하는지 알려주세요.

$.getJSON('/data/portfolios.json', function(portfolios) { 
    portfolios.forEach(function(portfoliosDataObject) { 
    var portfolio = new Portfolio(portfoliosDataObject); 
    portfolioArray.push(portfolio); 
    console.log(portfolio); 
    }); 
}); 
+0

고맙습니다! 그거야. – Potluck

+0

다행스럽게도 스택 오버플로를 환영합니다. 이 답변 또는 다른 사람이 귀하의 문제를 해결 한 경우 수락 한 것으로 표시하십시오. –

관련 문제