javascript - 我怎样才能转这个{'person' : {'name' : 'cc' , 'age' : 12} } to {'person.name' : 'cc' , 'person.age' : 12}?

标签 javascript underscore.js

像这样,我有一个对象:

{
  'person': {
    'like': {
      'color': 'red',
      'food': 'rice'
    },
    'name': {
      'first': {
        'word': 'bob',
        'num': 4
      }
    },
    'age': {
      'next': 18,
      'now': 19
    }
  }
}

我想将其转换为:

{
 'person.like.color': 'red',
 'person.like.food': 'rice',
 'name.first.word': 'bob',
 'name.first.num':4,
 ....
}  

我该如何转发它? 这是三窝,如果我有五窝或更多呢?我该怎么做?

最佳答案

像您想要的那样的数组不可能发生,但您可以使用以下方法获得类似的对象:

var newObj = {};
var temp = {};

for (var a in p) {
  if (p.hasOwnProperty(a)) {
    temp = p[a];
    for (var b in p[a]) {
      if (p[a].hasOwnProperty(b)) {
        newObj[a + "." + b] = temp[b];
      }
    }
  }
}

检查输出:

http://jsbin.com/cutudovala/edit?js,console

关于javascript - 我怎样才能转这个{'person' : {'name' : 'cc' , 'age' : 12} } to {'person.name' : 'cc' , 'person.age' : 12}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33093451/

相关文章:

javascript - Marionette.CompositeView 中 serializeData 和 onRender 的区别

javascript - 包裹在标签中的 jquery DOM 对象最终会自行结束?

javascript - 日期对象可以用于在 IE 10 中对数组进行排序吗

javascript - 组对象数组下划线js

javascript - 下划线/ Backbone 模板 .get

Javascript 在字符串中连接时更改日期格式

javascript - new Array(n).fill ('apple' ) 在 JavaScript 中的时间复杂度是多少?

javascript - 使用灯丝组台锯插件时不显示标签

javascript - 使用 JavaScript 查找数组中重复值的最高数量

javascript - 主干事件获取元素类型