簡體   English   中英

在AngularJS中過濾出一個數組

[英]Filter out an array in AngularJS

我有一個從Web服務返回的JSON對象,該對象已添加到AngularJS項目的數組中。

我需要創建一個看起來像這樣的數組:

$scope.eventSources = [
//this is event source object #1
{
    events: [ // put the array in the `events` property
    {
        title: //POPULATE FROM MY ARRAY,
        start: //POPULATE FROM MY ARRAY,
        END: //POPULATE FROM MY ARRAY
    },
    {
        title: //POPULATE FROM MY ARRAY,
        start: //POPULATE FROM MY ARRAY,
        end: //POPULATE FROM MY ARRAY
    }
    ],
}];

從看起來像這樣的數組中:

holidays: [
{
    HOLIDAY_END: "/Date(1461538800000+0100)/"
    HOLIDAY_EVENT_ID: 1
    HOLIDAY_START: "/Date(1461106800000+0100)/"
    HOLIDAY_TITLE: "Spain     "
    USER_ID: 1
}
]

因此,您可以看到HOLIDAY TITLE, HOLIDAY START AND HOLIDAY END需要添加到新數組中。

這可以通過forEach循環來完成,該循環遍歷您的holidays並使用holidays每個元素的必填字段創建一個對象。 這段代碼可以解決問題:

$scope.eventSources = [{events:[]}];    //set up object with array for containing data
var func = function() {    //Lets do it in a function so it's reusable
    holidays.forEach(function(hol) {    //forEach loop through the holidays array data

        $scope.eventSources[0].events.push({ //Push a new object to our eventSOurces array
            title: hol.HOLIDAY_TITLE, //Set up fields on new object
            start: hol.HOLIDAY_START,
            end: hol.HOLIDAY_END
        });    
    });
}
func(); //Call function to populate array

您在請求的ENDend之間切換,所以我以end因為它與其他字段一致。

這是Array#map()的建議

 var data = { holidays: [{ HOLIDAY_END: "/Date(1461538800000+0100)/", HOLIDAY_EVENT_ID: 1, HOLIDAY_START: "/Date(1461106800000+0100)/", HOLIDAY_TITLE: "Spain", USER_ID: 1 }, { HOLIDAY_END: "/Date(1462538800000+0100)/", HOLIDAY_EVENT_ID: 2, HOLIDAY_START: "/Date(1461106800000+0100)/", HOLIDAY_TITLE: "France", USER_ID: 2 }] }, $scope = { eventSources: [{}] }; $scope.eventSources[0].events = data.holidays.map(function (a) { return { title: a.HOLIDAY_TITLE, start: a.HOLIDAY_START, end: a.HOLIDAY_END }; }); document.write('<pre>' + JSON.stringify($scope, 0, 4) + '</pre>'); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM