尝试在对象对象的值与对象数组

时间:2016-04-29 15:33:10

标签: javascript arrays

我正在尝试在对象(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库这样的东西可以轻松完成吗?

1 个答案:

答案 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访问数据。