2015-10-14 46 views
-1

我有以下JSON數據:如何從JSON對象中創建兩個具有不同值的數組?

jobHistoryJsonLst = [{ 
    "uuid" : "bGd_AAABNaMAAAFQHvY0UyTa", 
    "startDate" : "2015-10-01 15:22:21", 
    "endDate" : "2015-10-01 15:22:24", 
    "executionTime" : "0:0:2.951" 
}, { 
    "uuid" : "lat_AAABqh4AAAFPQ8k0U_qu", 
    "startDate" : "2015-09-23 10:50:02", 
    "endDate" : "2015-09-23 10:50:06", 
    "executionTime" : "0:0:3.284" 
}] 

我想從上面的JSON對象創建兩個不同的陣列。一個應該包含所有的startDate數據,另一個應該包含所有的executionTime數據。

預期輸出:

startDateArr = ['2015-10-01 15:22:21', '2015-09-23 10:50:02'] 
execTimeArr = ['0:0:2.951', '0:0:3.284'] 
+1

map()或使用循環。 – epascarello

回答

1

既可以使用圖(),這意味着處理它用forEach重複兩次或一次循環,並將它自己推送到數組中。

jobHistoryJsonLst = [{ 
    "uuid" : "bGd_AAABNaMAAAFQHvY0UyTa", 
    "startDate" : "2015-10-01 15:22:21", 
    "endDate" : "2015-10-01 15:22:24", 
    "executionTime" : "0:0:2.951" 
}, { 
    "uuid" : "lat_AAABqh4AAAFPQ8k0U_qu", 
    "startDate" : "2015-09-23 10:50:02", 
    "endDate" : "2015-09-23 10:50:06", 
    "executionTime" : "0:0:3.284" 
}]; 

var start = jobHistoryJsonLst.map(function (obj) { return obj.startDate; }); 
var end = jobHistoryJsonLst.map(function (obj) { return obj.endDate; }); 

//or 

var start = [], 
end = []; 
jobHistoryJsonLst.forEach(function(obj) { 
    start.push(obj.startDate); 
    end.push(obj.endDate); 
}); 
1

可以使用.map或簡單的循環,這樣

var jobHistoryJsonLst = [{ 
 
    "uuid" : "bGd_AAABNaMAAAFQHvY0UyTa", 
 
    "startDate" : "2015-10-01 15:22:21", 
 
    "endDate" : "2015-10-01 15:22:24", 
 
    "executionTime" : "0:0:2.951" 
 
}, { 
 
    "uuid" : "lat_AAABqh4AAAFPQ8k0U_qu", 
 
    "startDate" : "2015-09-23 10:50:02", 
 
    "endDate" : "2015-09-23 10:50:06", 
 
    "executionTime" : "0:0:3.284" 
 
}]; 
 

 
var dates = [], 
 
    times = [], 
 
    len = jobHistoryJsonLst.length, i; 
 

 
for (i = 0; i < len; i++) { 
 
    dates.push(jobHistoryJsonLst[i].endDate); 
 
    times.push(jobHistoryJsonLst[i].executionTime); 
 
} 
 

 
console.log(dates, times); 
 

 
// or with .map 
 

 
var dates = jobHistoryJsonLst.map(function (el) { 
 
    return el.endDate; 
 
}); 
 

 
var times = jobHistoryJsonLst.map(function (el) { 
 
    return el.executionTime; 
 
}) 
 

 
console.log(dates, times);

相關問題