簡體   English   中英

使用javascript使用數組過濾具有鍵和值對的對象

[英]Filter an object with key and value pair with an array using javascript

我有一個數據模式

let data = [{
    "Count": {
        "Grapes": 1,
        "Banana": 6,
    }
}]

我需要從數組“結果”中過濾數據的對象“計數”

let result = ["Banana"]

並得到一個輸出

let output = {"Banana": 6}

我將如何使用我嘗試過的 javascript 實現這一目標

let output = data[0]["Count"].filter( i => result.includes( data[0]["Count"] ));

這一個班輪:

const filtered = Object.fromEntries(Object.entries(data[0]["Count"]).filter(([k]) => result.includes(k))) 

支持 ES5:

const filtered  = Object.keys(data[0]["Count"]).filter(k => result.includes(k)).reduce((acc, k) => (acc[k] = data[0]["Count"][k], acc), {})

演示:

 let data = [{ "Count": { "Grapes": 1, "Banana": 6, } }] let result = ["Banana"] const filtered = Object.fromEntries(Object.entries(data[0]["Count"]).filter(([k]) => result.includes(k))) const filteredES5 = Object.keys(data[0]["Count"]).filter(k => result.includes(k)).reduce((acc, k) => {acc[k] = data[0]["Count"][k]; return acc}, {}) console.log(filtered); console.log(filteredES5);

這將適用於您的價值觀:

result.map(item => data[0].Count[item])

如果您想要鍵值並刪除未定義的值:

result.map(item =>{return  data[0].Count[item] ? {[item] : data[0].Count[item]} : undefined} ).filter(item => item != undefined)

暫無
暫無

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

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