下面是我在js中拥有的两个对象数组:
var arr_A = [
{Name: "Smith", CheckedOut: true},
{Name: "Jane", CheckedOut: true},
]
var arr_B = [
{Name: "Smith", CheckedIn: true},
{Name: "Paul", CheckedIn: true},
{Name: "Wagen", CheckedIn: true},
]
如果找到重复项,我想设置为CheckedOut: true, CheckedIn: true
.
如果它不是副本,我想根据它们的属性值设置CheckedOut: false, CheckedIn: true
或CheckedOut: true, CheckedIn: false
.
以下是该示例的估计结果:
[
{Name: "Smith", CheckedOut: true, CheckedIn: true},
{Name: "Jane", CheckedOut: true, CheckedIn: false},
{Name: "Paul", CheckedOut: false, CheckedIn: true},
{Name: "Wagen", CheckedOut: false, CheckedIn: true},
]
这就是我所做的:
let result = [];
for(var i=0; i<arr_B.length; i++){
for(var j=0; j<arr_A.length; j++) {
if(arr_A[j].Name == arr_B[i].Name) {
result.push({
Name: arr_A[j].Name,
CheckedIn: true,
CheckedOut: true
})
} else {
if(arr_A[j].CheckedOut){
result.push({
Name: arr_A[j].Name,
CheckedOut: true,
CheckedIn: false
})
} else {
result.push({
Name: arr_A[j].Name,
CheckedOut: false,
CheckedIn: true
})
}
}
}
}