Javascript 数组格式化 - 重复数据
Javascript Array Formatting - Repeating Data
我想在下面的员工数组中将重复的建筑物名称显示为一个数组。
const employess = [
{
building_name: "A",
name: "John"
},
{
building_name: "B",
name: "John"
},
{
building_name: "A",
name: "Doe"
},
{
building_name: "c",
name: "John"
},
{
building_name: "B",
name: "Doe"
},
{
building_name: "C",
name: "David"
}
];
比如我要转换成下面的数组格式
const employess = [
{
building_name: ["A", "B", "C"],
name: "John"
},
{
building_name: ["A", "B"],
name: "Doe"
},
{
building_name: ["C"],
name: "David"
}
]
非常感谢您的帮助。
取自
const employess = [{
building_name: "A",
name: "John"
},
{
building_name: "B",
name: "John"
},
{
building_name: "A",
name: "Doe"
},
{
building_name: "c",
name: "John"
},
{
building_name: "B",
name: "Doe"
},
{
building_name: "C",
name: "David"
}
]
let output = []
employess.forEach(function(item) {
var existing = output.filter(function(v, i) {
return v.name == item.name;
});
if (existing.length) {
var existingIndex = output.indexOf(existing[0]);
output[existingIndex].building_name = output[existingIndex].building_name.concat(item.building_name);
} else {
if (typeof item.building_name == 'string')
item.building_name = [item.building_name];
output.push(item);
}
});
console.log(output)
我想在下面的员工数组中将重复的建筑物名称显示为一个数组。
const employess = [
{
building_name: "A",
name: "John"
},
{
building_name: "B",
name: "John"
},
{
building_name: "A",
name: "Doe"
},
{
building_name: "c",
name: "John"
},
{
building_name: "B",
name: "Doe"
},
{
building_name: "C",
name: "David"
}
];
比如我要转换成下面的数组格式
const employess = [
{
building_name: ["A", "B", "C"],
name: "John"
},
{
building_name: ["A", "B"],
name: "Doe"
},
{
building_name: ["C"],
name: "David"
}
]
非常感谢您的帮助。
取自
const employess = [{
building_name: "A",
name: "John"
},
{
building_name: "B",
name: "John"
},
{
building_name: "A",
name: "Doe"
},
{
building_name: "c",
name: "John"
},
{
building_name: "B",
name: "Doe"
},
{
building_name: "C",
name: "David"
}
]
let output = []
employess.forEach(function(item) {
var existing = output.filter(function(v, i) {
return v.name == item.name;
});
if (existing.length) {
var existingIndex = output.indexOf(existing[0]);
output[existingIndex].building_name = output[existingIndex].building_name.concat(item.building_name);
} else {
if (typeof item.building_name == 'string')
item.building_name = [item.building_name];
output.push(item);
}
});
console.log(output)