我正在尝试在对象(A)和对象数组(B)之间进行匹配。
对象对象中的每个对象都有一个PID。对象数组中的每个对象都有一个PID。我试图匹配A和B,所以我可以从A获得职业,然后将职业附加到B中的每个对象。所以,我试图将PID和职业合二为一。甚至可以这样做吗?
所以,这就是A的样子:
{
emp1: {
PID: 2430
Occupation: Welder
},
emp2: {
PID: 432,
Occupation: Electrician
}
}
和B:
[
{
PID: 432
},
{
PID: 2430
}
]
使用像lodash库这样的东西可以轻松完成吗?
答案 0 :(得分:1)
您需要在循环内部运行循环以匹配从B到A(或其他方式)的元素,这非常昂贵。如果你能改变结构,那就更容易了,比方说,A。
A = {
2430: {
name: "John",
occupation: "Welder"
},
432: {
name: "John",
occupation: "Electrician"
}
}
然后,您可以像A
这样访问A[2430]
中的数据:B = B.map(function(el) {
return {
PID: el.PID,
occupation: A[el.PID].occupation
}
});
console.log(B);
然后你的代码看起来像那样:
A
所以你只有一个循环。此外,您还可以更快地从render_anywhere
访问数据。