簡體   English   中英

在javascript中將對象存儲在數組中

[英]Store objects in an array in javascript

我在對象 obj 中有幾個對象,我想將其存儲在數組中。我正在為這種情況實現 push() 但它沒有給出正確的輸出。 有人可以建議實施相同的方法。

var obj ={
car:{
maruti: {wheels: 4, mileage:15},
dezire: {wheels: 4, mileage:19}
    },

bike:{
suzuki:{wheels: 2, mileage:45},
honda:{wheels: 2, mileage:85}
     } 
         }

預期輸出:

var obj ={
car:[{
maruti: {wheels: 4, mileage:15},
dezire: {wheels: 4, mileage:19}
    }],

bike:[{
suzuki:{wheels: 2, mileage:45},
honda:{wheels: 2, mileage:85}
     } 
         }]

您可以將對象的鍵減少為一個對象,其值在數組中,如下所示:

 const obj = {car:{maruti:{wheels:4,mileage:15},dezire:{wheels:4,mileage:19}},bike:{suzuki:{wheels:2,mileage:45},honda:{wheels:2,mileage:85}}}, res = Object.keys(obj).reduce((acc, key) => ({...acc, [key]:[obj[key]]}), {}); console.log(res);

但是,請注意,對象不存儲有保證的順序,因此生成的對象可能與您的輸入順序不同。

只是您需要將[]放在 ur 每個obj值周圍。

 var obj ={ car:{ maruti: {wheels: 4, mileage:15}, dezire: {wheels: 4, mileage:19} }, bike:{ suzuki:{wheels: 2, mileage:45}, honda:{wheels: 2, mileage:85} } } for(let key in obj){ obj[key] = [obj[key]] } console.log(obj)

簡單地使用Object.keys()像這樣:

 var obj ={ car:{ maruti: {wheels: 4, mileage:15}, dezire: {wheels: 4, mileage:19} }, bike:{ suzuki:{wheels: 2, mileage:45}, honda:{wheels: 2, mileage:85} } } Object.keys(obj).forEach(key => obj[key] = [obj[key]]); console.log(obj);

並按里程對車輛進行分類:

 var obj ={ car:{ maruti: {wheels: 4, mileage:15}, dezire: {wheels: 4, mileage:19} }, bike:{ suzuki:{wheels: 2, mileage:45}, honda:{wheels: 2, mileage:85} } } Object.keys(obj).forEach(key => obj[key] = [obj[key]]); Object.keys(obj).forEach(key => obj[key].sort((a, b) => a.mileage - b.mileage)); console.log(obj);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM