Ich habe ein Array von Objekten zu durchlaufen, die wie folgt aussieht:Wie durch eine Reihe von Objekteigenschaften in einem Array von Objekten
data = [
{
title: 'John Doe',
departments: [
{ name: 'Marketing', slug: 'marketing'},
{ name: 'Sales', slug: 'sales'},
{ name: 'Administration', slug: 'administration'},
]
},
{
title: 'John Doe Junior',
departments: [
{ name: 'Operations', slug: 'operations'},
{ name: 'Sales', slug: 'sales'},
]
},
{
title: 'Rick Stone',
departments: [
{ name: 'Operations', slug: 'operations'},
{ name: 'Marketing', slug: 'marketin'},
]
},
]
Wie kann ich über jedes Objekt Abteilungen Array iterieren und neue Arrays erstellen wo ich Mitarbeiter nach Abteilungen sortiert haben, so dass das Endergebnis diese würden:
operations = [
{
title: 'John Doe Junior',
departments: [
{ name: 'Operations', slug: 'operations'},
{ name: 'Sales', slug: 'sales'},
]
},
{
title: 'Rick Stone',
departments: [
{ name: 'Operations', slug: 'operations'},
{ name: 'Marketing', slug: 'marketin'},
]
},
]
marketing = [
{
title: 'John Doe',
departments: [
{ name: 'Marketing', slug: 'marketing'},
{ name: 'Sales', slug: 'sales'},
{ name: 'Administration', slug: 'administration'},
]
},
{
title: 'Rick Stone',
departments: [
{ name: 'Operations', slug: 'operations'},
{ name: 'Marketing', slug: 'marketin'},
]
},
]
Was wäre der Weg dynamisch diese Art von Arrays zu erstellen?
aktualisieren
Ich habe versucht, mit einer Lösung mit dem Vorschlag aus der Antwort zu kommen, wo ich ein Array mit Abteilung Objekten dynamisch erstellen, die eine Reihe von Mitarbeitern haben würden:
const isInDepartment = departmentToCheck => employer => employer.departments.find(department => department.slug == departmentToCheck);
var departments = [];
function check(departments, name) {
return departments.some(object => name === object.department);
}
employees.forEach((employee) => {
employee.departments.forEach((department) => {
let found = check(departments, department.slug);
if (!found) {
departments.push({ department: department.slug });
}
});
});
departments.forEach((department) => {
// push an array of employees to each department
//employees.filter(isInDepartment(department));
});
Aber ich weiß nicht, wie kann ich das Array von Mitarbeitern auf das Objekt in dem Array schieben, die ich am Ende Schleife bin? Dies ist die fiddle.
Was haben Sie versucht? Sie müssten ['Object'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object#Methods_of_the_Object_constructor) und [' Array'] verwenden (https: // developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Methods_2) Methoden. – Xufox
@ T.J.Crowder Ich habe die Frage bearbeitet und die Syntax – Leff
welche Art von Syntax ist das? Sie können console.log verwenden, um eine saubere Darstellung einer Variablen in json wie folgt auszugeben: console.log (JSON.stringify (someVar)); – Ericson578