Object 下划线389;.以要展平对象的前缀展平

Object 下划线389;.以要展平对象的前缀展平,object,underscore.js,flatten,Object,Underscore.js,Flatten,我需要像这样展平一个对象: { ProductId: { Id: "123456-1234-1234-1234-123456789012", Type: "product", Name: "Product" } } 像 { ProductId_Id: "123456-1234-1234-1234-123456789012", ProductId_Type: "product", ProductId_Name: "Product" } 我目前正试图用

我需要像这样展平一个对象:

{
  ProductId: {
    Id: "123456-1234-1234-1234-123456789012",
    Type: "product",
    Name: "Product"
  }
}

{
  ProductId_Id: "123456-1234-1234-1234-123456789012",
  ProductId_Type: "product",
  ProductId_Name: "Product"
}
我目前正试图用下划线来存档,但是u0.flatte没有用于此的参数。

您可以使用.map.reduce

var raw = {
      ProductId: {
        Id: "123456-1234-1234-1234-123456789012",
        Type: "product",
        Name: "Product"
      }
    },
    flatten = _.map(raw, function(item, k){
       return _.reduce(item, function(obj, val, key){ 
           obj[[k,key].join('_')] = val;
           return obj;
        }, {});
    });
console.log(flatten[0])

好吧,看来有人已经为我找到了解决办法。不是完全重复的(不同的属性展平,并且不是特定于下划线),但是您可能需要查看