我有一個物件陣列,我需要從該物件陣列中獲取具有某些屬性的串列。但是我需要該串列僅包含物件包含具有特定元素的另一個屬性的那些值。這很令人困惑,所以我舉了一個例子。假設我有一個包含物件的陣列。
employees = [
{
n: 'case 1',
date: '2021-05-4',
id: '123',
user: [{name: 'Vlad', id: '1'}, {name: 'Misha', id: '2'}],
isPresent : true,
},
{
caseName: 'case 2',
date: '2021-05-4',
id: '124',
user: [{name: 'Alina', id: '3'}, {name: 'Alex', id: '4'}],
isPresent : true,
},
{
caseName: 'case 3',
date: '2021-05-4',
id: '126',
user: [],
isPresent : false,
},
]
我的任務是IDs從物件陣列中獲取串列,但我ID只需要從那些具有isPresentas 的物件中獲取true。所以我需要 ['123', '124']。
我可以使用回圈和條件等等。但我想知道是否可以用一條線來做?像這樣的東西:
employees.filter(item => { return item.isPresent === true }))
但我只需要不需要IDs整個物件。
uj5u.com熱心網友回復:
1)您可以使用條件過濾元素,item.isPresent === true然后對其進行映射以獲得最終結果:
employees
.filter((item) => item.isPresent === true)
.map((o) => o.id);
或者你也可以這樣做:
employees.filter((item) => item.isPresent).map((o) => o.id)
顯示代碼片段
const employees = [{
n: 'case 1',
date: '2021-05-4',
id: '123',
user: [{
name: 'Vlad',
id: '1'
}, {
name: 'Misha',
id: '2'
}],
isPresent: true,
},
{
caseName: 'case 2',
date: '2021-05-4',
id: '124',
user: [{
name: 'Alina',
id: '3'
}, {
name: 'Alex',
id: '4'
}],
isPresent: true,
},
{
caseName: 'case 3',
date: '2021-05-4',
id: '126',
user: [],
isPresent: false,
},
]
const result = employees
.filter((item) => item.isPresent === true)
.map((o) => o.id);
console.log(result);
2)您也可以使用以下方法獲得相同的結果reduce:
employees.reduce((acc, curr) => {
curr.isPresent && acc.push(curr.id);
return acc;
}, []);
顯示代碼片段
const employees = [
{
n: "case 1",
date: "2021-05-4",
id: "123",
user: [
{ name: "Vlad", id: "1" },
{ name: "Misha", id: "2" },
],
isPresent: true,
},
{
caseName: "case 2",
date: "2021-05-4",
id: "124",
user: [
{ name: "Alina", id: "3" },
{ name: "Alex", id: "4" },
],
isPresent: true,
},
{
caseName: "case 3",
date: "2021-05-4",
id: "126",
user: [],
isPresent: false,
},
];
const result = employees.reduce((acc, curr) => {
curr.isPresent && acc.push(curr.id);
return acc;
}, []);
console.log(result);
uj5u.com熱心網友回復:
你可以使用這樣的東西
employees.filter((item) => item.isPresent).map((obj) => obj.id);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/394592.html
標籤:javascript 数组 反应 反应原生 排序
上一篇:c 檔案系統,按字母順序獲取目錄中的檔案,重命名輸入
下一篇:使用{將元素添加到陣列中?:}
