簡體   English   中英

如何從Javascript中的另一個數組值中過濾數組值?

[英]How to filter array value from another array values in Javascript?

我的演示應用程序中有兩個數組。 數組一個具有內容的國家,另一個是列表國家。 因此,如果國家/地區數組中未包含該國家/地區,則我想從該國家/地區中刪除國家/地區。 我將數組值放在下面,

var continent = [
    {
        "continent":"Europe",
        "country":["Albania", "Andorra", "UK", "Ireland"]
    },
    {
        "continent":"Asia",
        "country":["Armenia", "Cambodia", "China", "Cyprus"]
    }
]

var selectedCountries = ["Albania", "Andorra", "Armenia"];

輸出

var result = [
    {
        "continent":"Europe",
        "country":["Albania", "Andorra"]
    },
    {
        "continent":"Asia",
        "country":["Armenia"]
    }
]
output=continent.map(continent=>{
    return {
        country:continent.country.filter(country=>selectedCountries.find(c=>c===country)),
         continent:continent.continent
    };
 });

只需通過selectCountries數組過濾國家/地區...

http://jsbin.com/lagonukuni/edit?console

如果您要修改原始數組,則可以執行以下操作:

forEach and `filter` would do the job.
  1. 只是遍歷continent陣列。
  2. 對於包含country數組的每個對象,請保留selectedCountries集合中存在的對象。

 var continent = [ { "continent":"Europe", "country":["Albania", "Andorra", "UK", "Ireland"] }, { "continent":"Asia", "country":["Armenia", "Cambodia", "China", "Cyprus"] } ]; var selectedCountries = ["Albania", "Andorra", "Armenia"]; continent.forEach(function (c,i) { c.country = c.country.filter(function (v,i) { return selectedCountries.includes(v); }); }); console.log(continent); 

暫無
暫無

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

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