微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用javascript或lodash将对象替换为新对象?

如何解决如何使用javascript或lodash将对象替换为新对象?

我的数据结构如下,

const data = {
    getSomething: {
        id: '1',items: [
            { 
                 id: '1',orders: [
                     {
                         id: '1',name: 'one1',}
                 ],subItems: [
                     { id: '1',name: 'subitem1' },{ id: '2',name: 'subitem2' },],},{ 
                 id: '2',orders: [
                     {
                         id: '2',name: 'two1',subItems: [
                     { id: '2',{ id: '3',}
        ],}
}

现在我还有另一个如下数据,

const item1 = { 
                 id: '2',orders: [
                     {
                         id: '3',}
        

我必须用上面的item1替换数据中ID为1的项目。我如何使用lodash做到这一点。或其他任何我可以轻松做到的方式。

有人可以帮我这个忙吗?谢谢。

解决方法

const data = {
  getSomething: {
    id: '1',items: [{
        id: '1',orders: [{
          id: '1',name: 'one1',}],subItems: [{
            id: '1',name: 'subitem1'
          },{
            id: '2',name: 'subitem2'
          },],},{
        id: '2',orders: [{
          id: '2',name: 'two1',subItems: [{
            id: '2',{
            id: '3',}
    ],}
}

const item1 = {
  id: '2',orders: [{
    id: '3',}

Object.assign(data.getSomething.items.find(item => item.id === item1.id),item1);

console.log(data);

,

这将覆盖具有item1的数据中ID为1的项目:

const data = {
    getSomething: {
        id: '1',items: [
            { 
                 id: '1',orders: [
                     {
                         id: '1',}
                 ],subItems: [
                     { id: '1',name: 'subitem1' },{ id: '2',name: 'subitem2' },{ 
                 id: '2',orders: [
                     {
                         id: '2',subItems: [
                     { id: '2',{ id: '3',}
        ],}
}

const item1 = { 
                 id: '2',orders: [
                     {
                         id: '3',}

const oldItem = data.getSomething.items.find(item => item.id == 1);
Object.assign(oldItem,item1);
console.log(data);
,

您看起来像这样吗?

const data = {
    getSomething: {
        id: '1',name: 'one1.......',name: 'subitem1....' },name: 'subitem2....' },}

let result = data.getSomething.items.map(item=> item.id===item1.id ? ({...item1}): item);

console.log('-----Original----',data.getSomething.items);
console.log('-----Updated-----',result);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。