我的物件陣列看起來像這樣
const arr1 = [
{person: {isPresent: true, isInsured: true, value:20}},
{status: {isPresent: true, isInsured: true, value:20}},
]
我想回傳一個看起來像這樣的物件/陣列
[
{person: {value:20}},
{status: {value:20}},
]
我嘗試映射此陣列,但無法獲得所需的結果,我想知道我錯過了什么。任何幫助表示贊賞,謝謝!
uj5u.com熱心網友回復:
你可能需要這樣的東西:
interface Details {
isPresent: boolean;
isInsured: boolean;
value: number;
}
interface Person {
person: Details;
}
interface Status {
status: Details;
}
type Tuple = [Person, Status];
const arr1: Tuple = [
{ person: { isPresent: true, isInsured: true, value: 20 } },
{ status: { isPresent: true, isInsured: true, value: 20 } },
];
const extractValue = ({ value }: Details) => ({ value });
const result = arr1.map(x => {
if ('person' in x) {
return { person: extractValue(x.person) };
}
if ('status' in x) {
return { status: extractValue(x.status) };
}
return x;
});
console.log(result);
你可以在這個TypeScript 游樂場玩它
uj5u.com熱心網友回復:
你可以這樣做:
const arr1 = [
{person: {isPresent: true, isInsured: true, value:20}},
{status: {isPresent: true, isInsured: true, value:20}},
];
const newArray = [];
for (const val in arr1) {
const keys = Object.keys(arr1[val]);
keys.forEach((key, index) => {
//console.log(key);
//console.log(arr1[val][key]['value']);
newArray.push({[key]: {value: arr1[val][key]['value']}});
});
}
console.log(newArray);
將回傳:
[ { person: { value: 20 } }, { status: { value: 20 } } ]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/363218.html
