例如,如果我有两个相等的索引数组:
A [
{name: Jhon}
{name: Jacob}
{name: Lukas}
]
B [
{fr: Prince} //fr, en, it is language, Prince is LastName
{en: Breed}
{it: Lasontos}
]
如何将其合并为一个,如下所示:
A [
{name: Jhon, lastname: Prince, country: fr }
{name: Jacob, lastname: Breed, country: en}
{name: Lukas, lastname: Lasontos, country: it}
]
答案 0 :(得分:5)
使用在第一个对象数组上应用的Object.assign(obj1, obj2)
和map()
方法。
var arr = [
{firstname: 'John'},
{firstname: 'Hello'}
]
var arr2 = [
{fr: 'Here'},
{en: 'There'}
]
arr.map((obj, index) => {
var internalization = {
country: Object.keys(arr2[index])[0],
lastname: arr2[index][Object.keys(arr2[index])[0]]
}
return Object.assign(obj, internalization);
})
console.log(arr);
工作中的小提琴:
答案 1 :(得分:1)
如果B数组中的对象始终只具有一个属性,则以下代码应做到这一点,尽管这是使用对象的一种奇怪方法。如果您可以控制B的结构,建议您将条目设置为具有姓氏属性和国家/地区属性的对象,而不要使用国家/地区作为键。这样,您就可以使用Andrei的原始答案。
var A = [
{name: Jhon}
{name: Jacob}
{name: Lukas}
]
var B = [
{fr: Prince} //fr, en, it is language, Prince is LastName
{en: Breed}
{it: Lasontos}
]
A.map((obj, index) => {
var keys = Object.keys(B[index]);
obj.country = keys[0];
obj.lastname = B[index][keys[0]];
return obj;
});
答案 2 :(得分:0)
您可以尝试
let A = [
{name: 'Jhon'},
{name: 'Jacob'},
{name: 'Lukas'}
]
let B = [
{fr: 'Prince'},
{en: 'Breed'},
{it: 'Lasontos'},
]
for(let i in B){
let temp = Object.keys(B[i])[0];
A[i].country = temp
A[i].lastname = B[i][temp];
}
console.log(A)