我目前正在過濾一組物件。
物件陣列是這樣的
var arrayObj = [
{
"Fajr": "04:29 (WIB)",
"Dhuhr": "11:43 (WIB)",
"Asr": "14:48 (WIB)",
"Maghrib": "17:48 (WIB)",
"Isha": "18:53 (WIB)"
},
{
"Fajr": "04:29 (WIB)",
"Dhuhr": "11:43 (WIB)",
"Asr": "14:47 (WIB)",
"Maghrib": "17:48 (WIB)",
"Isha": "18:53 (WIB)"
}
]
而且我有可以更改的陣列,但范圍只有 0 到 4。示例是這樣的
var arrayFind = [3, 0, 4]
我想要實作的是arrayObj基于的意志過濾器arrayFind,例如輸出是這樣的
var arrayObj = [
{
"Fajr": "04:29 (WIB)",
"Maghrib": "17:48 (WIB)",
"Isha": "18:53 (WIB)"
},
{
"Fajr": "04:29 (WIB)",
"Maghrib": "17:48 (WIB)",
"Isha": "18:53 (WIB)"
}
]
我如何做到這一點?我嘗試使用map但_.pickBy仍然卡住。太感謝了
uj5u.com熱心網友回復:
我們可以使用Object.keys()來獲取所有的密鑰,然后使用map()來執行它
var arrayObj = [
{
"Fajr": "04:29 (WIB)",
"Dhuhr": "11:43 (WIB)",
"Asr": "14:48 (WIB)",
"Maghrib": "17:48 (WIB)",
"Isha": "18:53 (WIB)"
},
{
"Fajr": "04:29 (WIB)",
"Dhuhr": "11:43 (WIB)",
"Asr": "14:47 (WIB)",
"Maghrib": "17:48 (WIB)",
"Isha": "18:53 (WIB)"
}
]
var arrayFind = [3, 0, 4]
let result = arrayObj.map(e => {
let keys = Object.keys(e)
let obj = {}
arrayFind.forEach(a => {
obj[keys[a]] = e[keys[a]]
})
return obj
})
console.log(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/520882.html
