Rimuovere una nota
Fa parte della sezione Fondamenti di Node.js del percorso Node.js di Coddy. Lezione 15 di 33.
done 2 dovrebbe rimuovere la nota 2, e le persone digitano qualsiasi cosa dopo done.
Gli argomenti sono stringhe: Number('2') è 2 e Number('two') è NaN. Number.isInteger rifiuta NaN e 2.5 in un unico test; poi verifica l'intervallo. Gli elenchi contano a partire da 1 e gli array da 0, quindi la nota n si trova all'indice n - 1, e splice(i, 1) la rimuove.
// node seat.js 4
const seat = Number(process.argv[2]);
if (!Number.isInteger(seat) || seat < 1 || seat > 30) {
console.error(`No seat ${process.argv[2]}`);
process.exit(1);
}
console.log(`Row ${Math.ceil(seat / 6)}`);Sfida
FacileQuando finisci un'attività, la contrassegni come completata e scompare dall'elenco. Aggiungi un comando done che rimuova una nota in base al suo numero.
- In
notes.js, aggiungi un comandodone. La parola dopodoneè il numero della nota, come mostrato dalist, quindi la nota 1 è la prima nota. La parola arriva come stringa. - Rimuovi quella nota dall'archivio, poi salva le note in
notes.json, nello stesso modo in cuiaddle salva. La nota 1 si trova all'indice 0 dell'array. Puoi inserire il codice per rimuoverla innotes.jsoppure come metodo instore.js. - Stampa
Done:seguito dal testo della nota che hai rimosso. Con le noteBuy milk,Call AdaeWater the plants,node notes.js done 1stampa:A quel punto,Done: Buy milknotes.jsoncontiene soloCall AdaeWater the plants.done 3rimuoveWater the plants. - Se la parola non è il numero di una nota, non modificare nulla. Stampa
No noteseguito dalla parola su stderr ed esci con codice 1. Questo vale per una parola comeabc,0, un numero decimale come2.5e un numero superiore a quello dell'ultima nota, come9quando ci sono tre note.node notes.js done abcstampa questo messaggio in rosso:No note abc
Prova: digita list nel riquadro dopo $ node notes.js per vedere le tue note e i relativi numeri. Digita done 1, poi di nuovo list: la prima nota è scomparsa e le altre sono salite di un numero. Poi digita done abc: vedrai No note abc in rosso e il codice di uscita 1, mentre list mostrerà le stesse note di prima.
Provalo tu
// Il tuo strumento per le note inizia qui.
import { rmSync } from 'node:fs';
import path from 'node:path';
import { formatNote } from './format.js';
import stats from './legacy/stats.cjs';
import store from './store.js';
const [command, ...words] = process.argv.slice(2);
const text = words.join(' ');
if (command === 'add') {
const n = store.add(text);
console.log(`Saved note ${n}.`);
} else if (command === 'list') {
const owner = process.env.NOTES_OWNER ?? 'you';
console.log(`Notes for ${owner}`);
if (store.notes.length === 0) {
console.log('No notes yet');
}
store.notes.forEach((note, i) => console.log(formatNote(i + 1, note)));
} else if (command === 'where') {
const file = path.join(process.cwd(), 'notes.json');
console.log(file);
console.log(path.basename(file));
} else if (command === 'stats') {
console.log(`${store.notes.length} notes, ${stats.countWords(store.notes)} words`);
} else if (command === 'clear') {
rmSync('notes.json', { force: true });
console.log('Deleted notes.json');
} else {
if (command) {
console.error(`Unknown command: ${command}`);
}
console.error('Usage: node notes.js <command> [words]');
process.exit(1);
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti di Node.js
1Eseguire JavaScript con Node
Ciao, NodeLeggere il comandoArgomenti della riga di comandoComandi3File
Testo e valori JSONLeggere un fileScrivere testo JSONScrivere un fileRimuovere una notaEsercitati da solo: Playground Express