2016-09-29 4 views
0

두 개의 날짜를 읽고 그 날짜 사이에 모든 날짜의 배열을 반환 할 수있는 Zavier에서 몇 가지 자바 스크립트를 작성하려고합니다. Airtable (데이터베이스)에 날짜가 기록 된 여러 레코드를 만들 수 있습니다. Zapier 도움말에서 객체 배열을 반환하면 다음 단계가 각각 처리됩니다.Zapier의 JavaScript가 Airtable 데이터베이스에 게시 할 값을 여러 개 반환합니다.

나는 데이터를 반환하는 코드를 얻을 수 있었지만 데이터베이스 레코드를 만들려고하면 하나만 생성됩니다. 모든 날짜가 포함되어 있으므로 (출력 할 경우에만 작동합니다. 날짜가 아닌 텍스트 필드로 이동합니다. 여기 내 코드 시도 :

var fromDate = new Date(inputData.from); 
var toDate = new Date(inputData.to); 
var output =[]; 
var i = 1; 
do { 
    var useDate = new String(fromDate.toISOString()) 
    output.push(useDate); 
    console.log(fromDate); 
    fromDate.setDate(fromDate.getDate() + 1); 
    i++ 
} 
while (fromDate <= toDate); 
console.log(output); 
return{output}; 

다음 단계는 출력 변수를 볼 수 있지만 위에서 설명한대로 하나의 값으로 처리됩니다.

누구에게 아이디어가 있습니까? 당신이 객체가 아닌 배열을 객체를 반환하는 것처럼 보이는

답변

0

:

return{output};

또한, 당신의 할 일/문은 문자열이 아닌 객체의 배열을 생성된다. do 블록에서 useDate 문자열을 output 배열로 푸는 대신 간단한 객체를 만들고을 출력 배열에 푸시해야합니다 ().

루프가 실행될 때마다 '2016-09-28T00:00:00.000Z'을 누르는 대신 {date: '2016-09-28T00:00:00.000Z'}과 같은 것을 눌러야합니다.

do { 
    var useDate = new String(fromDate.toISOString()); 
    var dateObject = {}; 
    dateObject.date = useDate; 
    output.push(dateObject); 
    fromDate.setDate(fromDate.getDate() + 1); 
    i++ 
} 

이 방법은, output이 객체의 배열 될 것입니다 :

귀하의 할 일 블록은 다음과 비슷한 모습이 될 것

[ 
    { 
    "date": "2016-09-28T00:00:00.000Z" 
    }, 
    { 
    "date": "2016-09-29T00:00:00.000Z" 
    }, 
    { 
    "date": "2016-09-30T00:00:00.000Z" 
    } 
] 
1

감사 후안을 분류

- 또는 반환을 제거한 후에 최소한 작업 코드는 다음과 같습니다.

var fromDate = new Date(inputData.from); 
var toDate = new Date(inputData.to); 
var output =[]; 
var i = 1; 
do { 
    var useDate = new String(fromDate.toISOString()) 
    var dateObject = {}; 
    dateObject.date = useDate; 
    output.push({dateObject}); 
    fromDate.setDate(fromDate.getDate() + 1); 
    i++ 
} 
while (fromDate <= toDate);