首页 > 解决方案 > 与下一个数组或对象相比,仅更改数组或对象的更改属性

问题描述

我有两个数组ab,数组a是包含反应对象的反应数组,我的数组与我的 UI 绑定(即简单地循环

  • 元素和显示数据)当我更新数组的任何对象或更改数组中对象的任何属性时,我的视图层会自动更新。现在我正在尝试创建一个函数,该函数接收我的两个数组,并且只更新数组 a 的更新或更改属性,而不触及数组a中查看数组b的数组的未更新数据或对象的未更新属性。

    我没有使用任何 JavaScript 自由或框架。我在深度克隆数组b并将克隆的数组放入变量a时遇到问题我尝试克隆但我的问题没有解决。请帮我。

    
    var a = [
       {name:'mina' , age:18 , subject:'computer'}, //
       {name:'japan'}
    ];
    
    var b = [
      {name:'mina pandey' , age:19 , subject:'computer'},
      {name:'okkk' , aws:false}
    ]
    
    function LogicalUpdator(updating , newData) {     
       newData.forEach((el , index) => {
          if(typeof el == 'object'){
             var keys = Object.keys(el);
             keys.forEach(function(a){
               if(updating[index][a] !== el[a]){
                 updating[index][a] = el[a];
               }
             })
          }else if(Array.isArray(el)){
             el.forEach(function(a){
               if(updating[index] !== el[a]){
                 updating[index] = el[a];
               }
             })
          }else if(typeof el == 'string'){
    
          }
       });
    }
    
    BestUpdate(a , b);
    

    我写了超过10次,但我无法解决它。我尽力了,请帮助我。

    根据代码的详细问题:-

    从数组 a[0]name应转换为mina pandey查看b[0].name同样a[0].age应转换为19查看数组b b[0].agea[0].subjectiecomputer不应更改,因为a[0].subject == b[0].subject,同样应将a[1].nameie更改为ie并且应添加新属性,因为具有类似查看的新属性当在数组b上添加新数据时,应将相同的数据添加到数组a中,在删除的情况下,当从数组b中删除任何数据时,也应从数组a中删除相同的数据。japanb[1].nameokkkawsa[1]b[1]awsa(i.e object, array, number, boolen , string)

    请不要问我为什么不直接更新 array a (Reactive array) ,有一些深刻而真实的原因与我的项目相关,其中包含这个小问题。抱歉,我无法解释有关堆栈溢出或任何公共站点的项目。

    请帮助我,我觉得解决这个问题非常困难,因为我只是一个学习者,我没有深入的知识来处理这种复杂的问题。

  • 标签: javascriptarraysobjectreactive-programming

    解决方案


    推荐阅读