我有一個 JSON 物件,它有時是一個物件(單個實體),有時是一個陣列(物件的多個實體)。我需要撰寫一個 if 陳述句,基本上說明這部分 JSON 是否是一個物件,將其包裝在一個包含該單個物件的陣列中,如果它是一個包含多個物件的陣列,則回傳該陣列。在任何一種情況下,我都會回傳一個包含 1 個或多個物件的陣列。這是 JSON 不是陣列時的樣子。
"link": {
"values": {
"key1": "value1",
...
"key8": "value8"
},
"key9": "value9"
}
當它是一個陣列時,它應該是這樣的:
"link": [{
"values": {
"key1": "value1",
...
"key8": "value8",
},
"key9": "value9"
}]
uj5u.com熱心網友回復:
您可以使用Array.isArray進行檢查,然后轉換
let data = {
"link": {
"values": {
"key1": "value1",
"key8": "value8"
},
"key9": "value9"
}
}
data.link = Array.isArray(data.link) ? data.link : [data.link];
console.log(data)
uj5u.com熱心網友回復:
這可以通過撰寫一個簡單的函式來檢查它是否是一個陣列來完成。
const returnArray = (value) => {
if (Array.isArray(value) {
return value;
}
return
}
uj5u.com熱心網友回復:
將@Kinglish 的答案更新為打字稿一,因為您無法更改已定義值的型別,因為它會給出錯誤,要么簡單地忽略打字稿,要么定義簡單地接受鏈接的型別,object或者array of object只是創建新variable的期望陣列中的鏈接并換行只需執行以下操作即可在資料內部:
const data = {
link: {
values: {
key1: 'value1',
key8: 'value8',
},
key9: 'value9',
},
};
// This is the type of data you can't change it by default and it doesn't expect array of object of `link`.
// const data: {
// link: {
// values: {
// key1: string;
// key8: string;
// };
// key9: string;
// };
// };
const linkArray = { link: Array.isArray(data.link) ? data.link : [data.link] };
// Now this is the type of linkArray that expect array of object of `link`
// const linkArray: {
// link: {
// values: {
// key1: string;
// key8: string;
// };
// key9: string;
// }[];
// };
console.log('data', data);
console.log('linkArray', linkArray);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453636.html
標籤:javascript 数组 目的
下一篇:包含其他物件陣列的類物件
