javascript - 与下一个数组或对象相比,仅更改数组或对象的更改属性
问题描述
我有两个数组a和b,数组a是包含反应对象的反应数组,我的数组与我的 UI 绑定(即简单地循环
我没有使用任何 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
iecomputer
不应更改,因为a[0].subject == b[0].subject
,同样应将a[1].name
ie更改为ie并且应添加新属性,因为具有类似查看的新属性当在数组b上添加新数据时,应将相同的数据添加到数组a中,在删除的情况下,当从数组b中删除任何数据时,也应从数组a中删除相同的数据。japan
b[1].name
okkk
aws
a[1]
b[1]
aws
a
(i.e object, array, number, boolen , string)
请不要问我为什么不直接更新 array a (Reactive array) ,有一些深刻而真实的原因与我的项目相关,其中包含这个小问题。抱歉,我无法解释有关堆栈溢出或任何公共站点的项目。
请帮助我,我觉得解决这个问题非常困难,因为我只是一个学习者,我没有深入的知识来处理这种复杂的问题。
解决方案
推荐阅读
- javascript - 模拟(redux 存储)对象以开玩笑地测试 js 功能
- http - 通过 HTTP 进行身份验证(登录)的最可靠方法是什么?
- python - 如何使函数在条件下使用默认参数
- graphviz - 如何将 GraphML 转换为 DOT 格式
- javascript - 如果在执行多个异步调用时 Excel TPA(edge webview)的焦点发生变化,Q.js 没有响应
- spring-boot - 为什么我无法从 Spring-boot 的应用程序资源目录中读取文件?
- discord - 我的反应角色命令在 Discord.js v12 中不起作用
- matlab - MATLAB匿名函数详细工作原理
- css - 如何在所选选项上打开 mat-select
- pandas - 如何使用 PyArrow 覆盖 Hive 分区数据集中分区列的类型推断?