2014-11-22 3 views
0

Google 사이트 목록 항목으로 작업하고 있습니다.Google 사이트 도구 목록 항목

클래스는 Here 내가 열을 반복하고 다음 코드로 하나 개의 배열에 열 머리글을 모두 넣을 수 있었다

Here 있습니다.

//Global 
var page = getPageByUrl(enter URL here) 
var name = page.getName(); 
function getInfo() { 
var columns = page.getColumns(); 
    //Get Column Names 
for (var j in columns) { 
    var cName =columns[j].getName(); 
    columnList.push(cName); 
    } 
} 

이제 listitem의 각 행을 가져 와서 자체 배열에 넣을 수 있기를 바랍니다.

내가 지금은 출력되는 변수가있는 변수

function getInfo() { 
var columns = page.getColumns(); 
var listItems = page.getListItems();//new variable 
    //Get Column Names 
for (var j in columns) { 
    var cName =columns[j].getName(); 
    columnList.push(cName); 
    } 
} 

을 추가 할 수 있습니다 [을 ListItem,을 ListItem,을 ListItem,을 ListItem] 그래서 나는 .length를 사용하고 4 의 수익을 얻을 수 있습니다 그래서 지금은 4 행이 필요하다는 것을 알고 싶어서 4 행의 데이터가 있다는 것을 알고 있습니다.

여기서 작은 의견은 무역에 의한 코더가 아니라 원하는되기위한 선구자로서의 코드입니다.

무역으로 JS 코더 인 나의 친구는 저에게이 코드를 보여주었습니다. 로거가 나와 함께 추가되었습니다. 그것은이 문제를 해결하려고 노력 스케치 패드의 비트로되어있는 한

var name = page.getName(); 
var listItems = page.getListItems(); 
var listCount = listItems.length 
var listList = []; 
var columns = page.getColumns(); 
var name = columns[0].getName(); 
var item, attrib = 0; 
var columnList = []; 
Logger.log(listItems); 
Logger.log(name + " was last updated " + page.getLastUpdated()); 
Logger.log(name + " was last edited " + page.getLastEdited()); 
var listCount = 0; 

//Get Column Names 
    for (var j in columns) { 
     var cName =columns[j].getName(); 
     columnList.push(cName); 
    } 
    Logger.log(columnList); 
    // Get index of Due Date 
    var dueDateValue = columnList.indexOf("Due Date"); 
    Logger.log("The index of due date is " + dueDateValue); 

for (var i in listItems) { 
if (listItems.hasOwnProperty(i)) { 
    item = listItems[i]; 
    for (var x = 0; x < columnList.length; x++) { 
     attrib = item.getValueByName(columnList[x]); 
     Logger.log("Logging value of get list page get value by name = " + columnList[x] + " " + attrib); 
     } 
    } 
    } 



}` 

에 총 코드를 제공

for (var i in listItems) { 
    if (listItems.hasOwnProperty(i)) { 
     item = listItems[i]; 
     for (var x = 0; x < columnList.length; x++) { 
      attrib = item.getValueByName(columnList[x]); 
      Logger.log("Logging value of get list page get value by name = " + columnList[x] + " " + attrib); 
     } 
    } 
    } 

은 위의 코드를 용서. 나는 어떤 속성을 우리가 사용할 수있는 자신의 어떻게 여기

for (var i in items) { // This is for each item in the items array 
    if (items.hasOwnProperty(i)) { 

항목이 배열 인 경우 이해에 조금 뒤에 무슨 일이 일어나고 있는가? 그것은 대상에 속하지 않는가? 배열이 객체가됩니까?

내 질문은 두 가지 카테고리로 나뉩니다.

카테고리 1 hasOwnProperty에는 어떤 현상이 있습니까? 이 경우,이 몇 가지있다 - 이은을 listitem의 값을 가지고 배열 을 채울 수있는 유일한 방법입니다 배열이 객체가되고, 따라서 .hasOwnProperty 값

분류 # 2 에 전달 될 수 -Does 방법은 그래서 그것을 자신의 배열 에 각 행을 전달할 수 있습니다 구분합니다 - 그렇지 않으면, 왜이 hasOwnProperty와 함께 작동 않고 왜

for (var i in listItems) { 
    for (var y = 0; y < columnList.length; y++) { 
    item = listItems[i]; 
    listList = item.getValueByName(columnList[x]); 
    Logger.log("Logging my version of list naming " + listList); 
     } 

아래의 예에서 그것 없이는 작동하지 않는 "잘못된 인수 : 이름 (41 행"응답.

강조 표시
listList = item.getValueByName(columnList[x]); 

유인물을 찾고 있지 않지만 hasOwnPropertyValue를 더 이해하고 싶습니다.

현재의 이해는 hasOwnValue가 프로토 타입 (애매한 이해)과 관련이 있습니다.이 경우는 인 경우처럼 보이지 않으며 이전에 혼란으로 설명한 객체에 의존해야합니다.

내 희망 명확히하기 위해 : 나는 인덱스 값을 비교하고 정렬 내 현재 열 머리글은 같은 날짜 수 있도록 자신의 배열에 많은 ListItems의 각 행을하고 싶은 을

["Project", "Start Date" , "End Date"] 

모든 모든 이 2 주 JS 초보자에게 도움을 많이 주셨습니다.

+0

질문을 먼저 압축해야한다고 생각합니다. 저를 믿으십시오, 아무도가 전부를 읽을 것이라는 점을 – Sajidkhan

+2

나는 생각한다 전체적인 생각 과정은 문제의 발전을 이해하기 위하여 포함되어야한다. 결과의 궁극적 인 욕구와 그 과정에서 주요 장애물. – JForgie

+0

itetterable 데이터 프로토 타입 멤버가있는 in 또는 data 객체를 사용하여 배열을 이동할 때 hasownproperty가 사용되는 이유는 여기에서 설명합니다. http : // stackoverflow.co.kr/questions/3010840/loop-through-array-in-javascript/3010848 # 3010848 – HMR

답변

1

배열 멤버의 값으로 물체의 내부에있을 수

{"myFirstArray":"[one,two,blue]"} 

상기 목적은 부재의 값이 배열 한 부재, 이름/값 쌍을 갖는다.

다음은 JSON을 설명하는 웹 사이트에 대한 링크입니다.

Link To JSON.org JSON explained by Mozilla 는 객체의 유효성을 테스트 할 웹 사이트가 있습니다

Link to JSONLint.com

배열 요소를 가지고 있으며, 배열의 요소는 다른 배열이 될 수 있습니다. 따라서 배열 내부에 배열이있을 수 있습니다.

.hasOwnPropertytrue 또는 false 중 하나를 반환합니다.

Documentation hasOwnProperty

흥미롭게도, 나는 오류가 발생하지 않고, 배열에 애플리케이션 스크립트에서 hasOwnProperty 방법을 사용할 수 있습니다 :

function testHasProp() { 
    var anArrayTest = []; 
    anArrayTest = ['one', 'two', 'blue']; 
    Logger.log(anArrayTest); 

    var whatIsTheResult = anArrayTest.hasOwnProperty('one'); 
    Logger.log(whatIsTheResult); 

    Logger.log(anArrayTest); 
} 

결과는 항상 false가 될 것입니다. 배열에서 hasOwnProperty 메서드를 사용하면 배열이 객체로 변경되지 않으며 false를 반환하는 Javascript를 사용하는 잘못된 방법입니다.

배열 값 대신 목록 값을 넣을 수 있습니다. 객체에 대한 이점은 속성이 어디에 색인되어 있는지에 상관없이 속성 이름에 의해 값을 참조 할 수 있다는 것입니다. 배열을 사용하면 인덱스 번호가 특정 요소를 검색하는 것이 무엇인지 알아야합니다. 당신은 점 표기법을 사용할 수 있습니다

StackOverflow Link

: 여기

는 자바 스크립트 객체에 속성을 추가 다루는 게시물입니다

objName.newProperty = 'newvalue'; 

또는 괄호

objName["newProperty"] = 'newvalue'; 

새 이름/값 쌍 (속성)을 개체에 추가하려면 .

+0

@Sandy Good 주셔서 감사합니다. 기꺼이 반환하고 upvote 할 수 있습니다. 이것은 매우 도움이됩니다. – JForgie