拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何将一个物件合并到另一个物件中

如何将一个物件合并到另一个物件中

白鹭 - 2022-03-11 1964 0 0

我不知道问题是否正确,但我想做以下事情,我希望“变量”的属性成为变量日的一部分。

物件如下: {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,minvariable属性。dia

const { seg, min, variable } = dia;

然后创建一个新物件,在其中设定segmin具有解构属性的属性。对于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);

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *