[英]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.