簡體   English   中英

通過給定值過濾掉對象數組,並避免根據相同的值添加重復項

[英]Filter out Array of object by a give value and avoiding to add duplicated according to the same value

我試圖弄清楚如何根據我要通過的某些條件從現有對象中提取對象的新數組,如果元素已經存在,也不要在新數組上進行復制。

這就是我擁有的對象: addressesObj

現在,我想通過給定的郵政編碼來過濾對象,例如:

`
 var PostCode = "TN37 7AJ  "
 var newAddressesObj =  addressesObj.filter( function (duties) {
      return duties.Address.Postcode === PostCode
     });
`

這可以正常工作,它為我提供了一個包含2個對象的數組:

newAddressesObj

現在,我想從這個新數組中刪除具有相同郵政編碼的記錄,以便它只給我一個對象-我該怎么做?

我嘗試將$ .inArray與過濾器一起使用,但是我做錯了什么,我也想一次性完成所有操作-像這樣:

var PostCode = "TN37 7AJ " var newAddressesObj = addressesObj.filter( function (duties) { return duties.Address.Postcode === PostCode && $.inArray(PostCode, addressesObj == -1 });

有任何想法嗎?

謝謝

將過濾后的郵政編碼添加到數組中,並繼續檢查循環的每個元素的郵政編碼數組。

var PostCode = "TN37 7AJ";
var addressesObj = [{
        "Address": {
            "Postcode": "TN38 8EW",
            "AddressLine1": "32 Head View"
        },
        "Name": "Ball, Jones",
        "ServiceDutyId": 0
    },
    {
        "Address": {
            "Postcode": "TN37 7AJ",
            "AddressLine1": "171 Road"
        },
        "Name": "Trump, Albert",
        "ServiceDutyId": 3259
    },
    {
        "Address": {
            "Postcode": "BN1 5AA",
            "AddressLine1": "171 Road"
        },
        "Name": "Martin, Lucas",
        "ServiceDutyId": 4256
    },
    {
        "Address": {
            "Postcode": "TN37 7AJ",
            "AddressLine1": "171 Road"
        },
        "Name": "Trump Albert",
        "ServiceDutyId": 3273
    }
]

var postcodeArr = [];

var isAbsence = function(postcode) {
    if (postcodeArr.indexOf(postcode) == -1) {
        postcodeArr.push(postcode);
        return true;
    }

    return false;
}

var newAddressesObj = addressesObj.filter(function(duties) {
    return duties.Address.Postcode === PostCode && isAbsence(duties.Address.Postcode);
});

暫無
暫無

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

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