递归替换对象中的值

时间:2015-11-24 16:29:36

标签: javascript recursion data-structures

假设我有一个看起来像这样的对象:

{
  _id: ObjectID(1234),
  name: 'Corvid',
  friends: [{
    name: 'Magpie',
    friends: [{
      name: 'Raven'
    }, {
      name: 'Jackdaw',
      friends: [{
        name: Friends.ALL_FRIENDS
      }]
    }]
  }, {
    name: 'Jay'
  }]
}

基本上,我要做的是,对于朋友列表中的每个条目,用Friends.findOne({ name: obj.name })的结果替换当前对象。

我很容易迭代这样的结构。

function populate(obj=friends) {
  if (obj.friends) {
    return populate(obj.friends);
  }
  return friends.findOne({ name: obj.name });
}

但是,我遇到的问题是在该特定区域替换该对象。怎么会这样做?

0 个答案:

没有答案