我有一個與映射相關的 Javascript 問題。所以我有兩個陣列......
陣列1
[
{
"id": 1,
"name": "admin"
},
{
"id": 2,
"name": "analyst"
},
{
"id": 3,
"name": "reviewer"
},
{
"id": 4,
"name": "administrator"
},
{
"id": 5,
"name": "leader"
}
]
陣列2
[ false, false, false, false, false]
我想創建第三個陣列。所以我創建了一個變數并將其初始值設定為空。
const roles = [];
我想要做的是根據Array2中的布林值按順序將Array1中的物件包含到角色中。
例如,如果Array2看起來像 [true, false, true, false, false],那么角色就是這個......
roles = [
{
"id": 1,
"name": "admin"
},
{
"id": 3,
"name": "reviewer"
},
]
原因是因為Array2中的第一個和第三個布林值都為真,因此它將Array1中的第一個和第三個物件放入角色中
我知道.map或.forEach 是這里的解決方案,但我不太清楚最好的方法。
有人可以幫忙嗎?
謝謝!
uj5u.com熱心網友回復:
您可以過濾陣列 1 并根據陣列 2 回傳值以過濾出如下資料:-
const roles = array1.filter((item, index) => array2[index]);
如果您只想回傳 id,請從評論中回答第二個查詢:-
const roles = array1.filter((item, index) => array2[index]).map((filtered) => ({id: filtered.id}));
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/481653.html
標籤:javascript 数组 有角度的 循环 映射
