Bunnings Warehouse-cadeaubonnen zijn een perfect cadeau-idee. De keuze van het hele magazijn. Alle gelegenheden; verjaardagen, felicitaties, jubilea, huisverwarmingen, bruiloften.
Om dit probleem op te lossen, moeten we de systeemvereisten opnieuw formatteren in een gestructureerd HTML-formaat. De systeemvereisten kunnen in twee verschillende formaten worden geleverd en het is onze taak om beide formaten op de juiste manier te behandelen.
### Aanpak
Het probleem betreft het omzetten van systeemvereisten in een specifieke HTML-structuur. De invoer kan in twee formaten zijn:
1. Een reeks objecten waarbij elk object een enkele vereiste bevat (bijvoorbeeld besturingssysteem, processor).
2. Een reeks objecten waarbij elk object een systeemnaam en een HTML-tekenreeks bevat die de vereisten weergeeft.
De oplossing omvat:
1. Het formaat van de invoer detecteren.
2. Het genereren van de juiste HTML-structuur op basis van het gedetecteerde formaat.
Als de invoer is gestructureerd met de toetsen „systeem” en „vereisten”, worden de vereisten van elk systeem als zodanig opgenomen. Anders worden de vereisten geëxtraheerd uit sleutel-waardeparen en gestructureerd in een ongeordende lijst.
### Oplossingscode
``javascript
functie ReFormatRequirements (input) {
laat de uitvoer = „;
if (input.length > 0 && 'systeem' in invoer [0]) {
voor (let req of input) {
let system = req.system;
laat requirementHTML = req.requirement.replace (/'/g, „');
uitgang += `
$ {system} Systeemvereisten
MINIMALE SPECIFICATIES
$ {requirementHTML}
`;
}
} anders {
let system = input [0]? invoer [0] .OS || 'PC': 'PC';
let requirements = input.flatMap (obj => {
let key = Object.keys (obj) [0];
let value = Object.values (obj) [0];
retourneer `
$ {key}: $ {value}`;
}) .join („);
uitgang = `
$ {system} Systeemvereisten
MINIMALE SPECIFICATIES
`;
}
retouruitvoer;
}
```
### Uitleg
1. **Invoerdetectie**: De functie controleert eerst of de invoer gestructureerd is met de toetsen „systeem” en „vereiste”. Zo ja, dan wordt elke vereiste afzonderlijk verwerkt.
2. **HTML-generatie voor gestructureerde invoer**: voor elk systeem wordt de HTML gegenereerd door de systeemnaam op te nemen, gevolgd door de vereiste HTML-tekenreeks.
3. **HTML-generatie voor ongestructureerde invoer**: Als de invoer geen „systeemsleutels” bevat, gaat de functie ervan uit dat alle objecten vereisten zijn voor een enkel systeem. De vereisten worden geëxtraheerd uit sleutel-waardeparen en gestructureerd in een ongeordende lijst.
Deze aanpak zorgt ervoor dat de vereisten altijd in een consistent en gebruiksvriendelijk formaat worden gepresenteerd, ongeacht de invoerstructuur.
Wees de eerste om dit product te beoordelen!
Delen