изменение только измененного свойства массива или объекта по сравнению со следующим массивом или объектом - PullRequest
2 голосов
/ 12 мая 2019

У меня есть два массива a и b , массив a - это реактивный массив, который содержит реактивные объекты, мой массив связан с моим пользовательским интерфейсом (т.е. просто зацикливается элемент

и отображение данных), когда я обновляю какие-либо объекты массива или когда я изменяю любое свойство объектов в массиве, мой слой представления автоматически обновляется. Теперь я пытаюсь создать функцию, которая получает мой массив и обновляет только обновленное или измененное свойство массива a , не затрагивая необновленные данные массива или не обновленное свойство объекта, который находится внутри массива a * 1011. * глядя на массив 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].age, но a[0].subject т. Е. computer не следует изменять, поскольку a[0].subject == b[0].subject, аналогично a[1].name, т. Е. japan, следует изменить на b[1].name, т. Е. okkk, а новое свойство aws следует добавить в a[1], поскольку b[1] имеет новое свойство aws, глядя на a аналогично, когда новые данные (i.e object, array, number, boolen , string) добавляются в массив b , тогда те же данные должны добавляться в массив a то же самое в удаленном случае, когда любые данные удаляются из массива b , затем те же данные должны быть удалены из массива a . Пожалуйста, не спрашивайте меня, почему вы не обновляете массив напрямую a (Реактивный массив). Есть несколько глубоких и подлинных причин, связанных с моим проектом, которые содержат эту небольшую проблему. Извините, я не могу рассказать о моем проекте с переполнением стека или каких-либо публичных сайтах. Пожалуйста, помогите мне, мне было очень трудно решить эту проблему, потому что я просто ученик, у меня нет глубоких знаний, чтобы справляться с такими сложными проблемами.
...