Javascript 克隆一个对象,如果使用';图表';找到了-JS

Javascript 克隆一个对象,如果使用';图表';找到了-JS,javascript,object,Javascript,Object,我有一个JS对象 const data = { names: { chart1: 'arun' }, city: 'New York', zip: { chart1: 11201 } } 克隆时,每当找到名为“chart”的键时,我希望添加一个名为chart2(或incremental)的新键。请给我一些建议 这就是我所做的: const newData = { names: { ...data.names, chart2: 'arun'

我有一个JS对象

const data = {
  names: {
    chart1: 'arun'
  },
  city: 'New York',
  zip: {
    chart1: 11201
  }
}
克隆时,每当找到名为“chart”的键时,我希望添加一个名为chart2(或incremental)的新键。请给我一些建议

这就是我所做的:

const newData = {
  names: {
    ...data.names,
    chart2: 'arun'
  },
  city: 'New York',
  zip: {
    ...data.zip,
    chart2: 11201
  }
}
但是,我想在函数中处理它

预期产出:

{
  city: "New York",
  names: {
    chart1: "arun",
    chart2: "arun"
  },
  zip: {
    chart1: 11201,
    chart2: 11201
  }
}

请给我一些建议。该键应基于找到的图表的最大值递增。如果我克隆上述对象,新的键应该是chart3。

此代码应该可以工作:

const newData = {
  names: {
    ...data.names,
    [`chart${Object.keys(data.names).length+1}`]: 'arun'
  },
  city: 'New York',
  zip: {
    ...data.zip,
    [`chart${Object.keys(data.zip).length+1}`]: 11201
  }
}

请展示您自己为解决此问题所做的任何尝试。您应该已经尝试过,我们可以帮助您调试。如果您想在函数中处理它,请向我们展示您这样做的尝试为什么不使用图表数组?此外,每个
chart-x
键的值都将相同?@adiga是的,使用chart1创建对象默认情况下,“增量”键是一个错误的决定。数组,数组,数组。