【发布时间】:2018-09-03 11:41:54
【问题描述】:
我有一个名为 newArray 和 oldArray 的对象数组。
像这样:[{name: 'abc', label: 'abclabel', values: [1,2,3,4,5]}]
example :
newArray = [
{name: 'abc', label: 'abclabel', values: [1,2,3,4,5]},
{name: 'test', label: 'testlabel', values: [1,2,3,4]}
]
oldArray = [
{name: 'oldArray', label: 'oldArrayLabel', values: [1,2,3,4,5]},
{name: 'test', label: 'testlabel', values: [1,2,3,4,5]}
]
result will be = [
{name: 'abc', label: 'abclabel', values: [1,2,3,4,5]},
{name: 'test', label: 'testlabel', values: [1,2,3,4]},
{name: 'oldArray', label: 'oldArrayLabel', values: [1,2,3,4,5]}
];
我想以这样一种方式合并两个数组,即只要两个数组中的 name 和 label 相等,它就应该只考虑 newArray 值。
我试过了
function mergeArrayWithLatestData (newData, oldData) {
let arr = [];
let i = 0; let j =0
while ((i < newData.length) && (j < oldData.length)) {
if ((findIndex(newData, { name: oldData[i].name, label: oldData[i].label })) !== -1) {
arr.push(newData[i])
} else {
arr.push(newData[i]);
arr.push(oldData[i]);
}
i += 1;
j += 1;
}
while (i < newData.length) {
arr.push(newData[i]);
}
return arr;
}
但我没有得到正确的结果。
有什么建议吗?
【问题讨论】:
-
你能举例说明你的预期结果吗?
-
@InstilledBee 感谢您的建议。添加示例
-
如果你有一个对象存在于
newArray但不存在于oldArray中,那它应该出现在最终结果中吗? -
你得到了什么结果?
-
newArray中的重复项怎么样?是否可以?它们应该在最终数组中还是应该只有唯一值?
标签: javascript algorithm lodash