假设我有两个数组,它们是:
var oldArray = [
{name: 'Trump', isRunning: false},
{name: 'Cruz', isRunning: false},
{name: 'saga', isRunning: false}
];
var newArray = [
{name: 'Trump', isRunning: true},
{name: 'Cruz', isRunning: true},
{name: 'mega', isRunning: true},
{name: 'alpha', isRunning: true},
{name: 'beta', isRunning: true},
{name: 'oliverspost', isRunning: true}
];
我想从newArray中删除所有重复的对象,并替换为 与带有oldArray的对应对象。同样,如果newArray中不存在,则oldArray中的任何对象会将其isRunning时间更改为“ True”,并将其推送到newArray。
预期结果:
[
{name: 'Trump', isRunning: true},
{name: 'Cruz', isRunning: true},
{name: 'mega', isRunning: true},
{name: 'alpha', isRunning: true},
{name: 'beta', isRunning: true},
{name: 'daya', isRunning: true},
{name: 'oliverspost', isRunning: true},
{name: 'saga', isRunning: true}
]
答案 0 :(得分:-1)
var oldArray = [
{name: 'Trump', isRunning: false},
{name: 'Cruz', isRunning: false},
{name: 'saga', isRunning: false}
];
var newArray = [
{name: 'Trump', isRunning: true},
{name: 'Cruz', isRunning: true},
{name: 'mega', isRunning: true},
{name: 'alpha', isRunning: true},
{name: 'beta', isRunning: true},
{name: 'oliverspost', isRunning: true}
];
newArrayNamesOnly = newArray.map(value => value.name);
oldArray.map(value => {
let currentName = value.name;
if (!newArrayNamesOnly.includes(currentName)){
newArray.push({name: currentName, isRunning: true});
newArrayNamesOnly.push(currentName);
}
});
console.log(newArray);
答案 1 :(得分:-1)
var oldArray = [
{name: 'Trump', isRunning: false},
{name: 'Cruz', isRunning: false},
{name: 'saga', isRunning: false}
];
var newArray = [
{name: 'Trump', isRunning: true},
{name: 'Cruz', isRunning: true},
{name: 'mega', isRunning: true},
{name: 'alpha', isRunning: true},
{name: 'beta', isRunning: true},
{name: 'oliverspost', isRunning: true}
];
var currentArray = [...oldArray,...newArray]
var obj = {};
for ( var i=0, len=currentArray.length; i < len; i++ )
obj[currentArray[i]['name']] = currentArray[i];
Object.keys(obj).map((i)=> obj[i])