Подчеркните _.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"
}

и в настоящее время я пытаюсь заархивировать это с подчеркиванием, но у _.flatten нет параметра для этого.

1 ответ

Решение

Вы можете вы. Карта и .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])
Другие вопросы по тегам