我不知道問題是否正確,但我想做以下事情,我希望“變數”的屬性成為變數日的一部分。
物件如下: {seg: 60, min:1, dias: 7, semana: 1}
保留以下方式的物件:考慮到物件內部的物件可以是任何人,并且它不必是屬性“變數”,因為我想讓它動態化,為什么像 delete dia.變數和后來合并不會為我服務。
使用我向您展示的代碼,我只獲得了結果: {seg: 60, min:1, variable:{dias: 7, semana: 1}, dias: 7, semana: 1}
關于如何更有效地做到這一點的任何想法,最重要的是,做到這一點。
const dia = {seg: 60, min:1, variable:{dias: 7, semana: 1}}
let varia = {}
let newDia = {}
const processJson = () => {
Object.entries(dia).map(([name, value]) => {
if(typeof(value) === 'object'){
varia = value
newDia = {...dia, ...variable}
}
})
}
processJson()
uj5u.com熱心網友回復:
這是一種將任何具有 2 層深度的物件展平的通用方法。它使用陣列reduce方法和Object.keys()函式:
const dia = { seg: 60, min: 1, variable: {dias: 7, semana: 1} }
function flatObject(o) {
return Object.keys(o).reduce((result, key) => {
// If there is a nested object, flat the object
if (typeof o[key] === 'object' && ! Array.isArray(o[key]) && o[key] !== null) {
for (const inKey in o[key]) {
result[inKey] = o[key][inKey];
}
}
// Just copy the value
else {
result[key] = o[key];
}
// Return accumulator
return result;
}, {});
}
console.log(flatObject(dia))
uj5u.com熱心網友回復:
首先使用解構賦值從物件中提取seg,min和variable屬性。dia
const { seg, min, variable } = dia;
然后創建一個新物件,在其中設定seg和min具有解構屬性的屬性。對于variable屬性,使用擴展語法將 的屬性variable放置在同一物件內。
const result = {
seg,
min,
...variable
};
顯示代碼片段
const dia = {
seg: 60,
min: 1,
variable: {
dias: 7,
semana: 1
}
};
const { seg, min, variable } = dia;
const result = {
seg,
min,
...variable
};
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/414753.html
標籤:
