我有一个这样的数组:
[{
mercado: "CAM",
region: "CAM Uno",
Cliente: "Jonhy"
}, {
mercado: "CAM",
region: "CAM Uno",
Cliente: "Alex"
}, {
mercado: "CAM",
region: "CAM Dos",
Cliente: "Jullian"
}, {
mercado: "NAM",
region: "OCI",
Cliente: "Pascal"
}, {
mercado: "NAM",
region: "FLI",
Cliente: "Sofia"
}, {
mercado: "NAM",
region: "FLI",
Cliente: "Priya"
}];
我想要一个像:
这样的对象[{
mercado: "CAM",
region: [{
nombre: "CAM Uno",
Cliente: ["Jonhy", "Alex"]
}, {
nombre: "CAM Dos",
Cliente: ["Jullian"]
}]
}, {
mercado: "NAM",
region: [{
nombre: "OCI",
Cliente: ["Pascal"]
}, {
nombre: "FLI",
Cliente: ["Sofia", "Priya"]
}]
}];
有可能吗?
答案 0 :(得分:2)
您可以使用对象来引用结果集中的插入项。
var data = [{ mercado: "CAM", region: "CAM Uno", Cliente: "Jonhy" }, { mercado: "CAM", region: "CAM Uno", Cliente: "Alex" }, { mercado: "CAM", region: "CAM Dos", Cliente: "Jullian" }, { mercado: "NAM", region: "OCI", Cliente: "Pascal" }, { mercado: "NAM", region: "FLI", Cliente: "Sofia" }, { mercado: "NAM", region: "FLI", Cliente: "Priya" }],
grouped = [];
data.forEach(function (a) {
var o = { mercado: a.mercado, region: [] };
if (!this[a.mercado]) {
this[a.mercado] = { region: o.region, };
grouped.push(o);
}
if (!this[a.mercado][a.region]) {
this[a.mercado][a.region] = { nombre: a.region, Cliente: [] };
this[a.mercado].region.push(this[a.mercado][a.region]);
}
this[a.mercado][a.region].Cliente.push(a.Cliente);
}, Object.create(null));
console.log(grouped);