Menu
CoddyTech

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)}`);
challenge icon

Sfida

Facile

Quando finisci un'attività, la contrassegni come completata e scompare dall'elenco. Aggiungi un comando done che rimuova una nota in base al suo numero.

  1. In notes.js, aggiungi un comando done. La parola dopo done è il numero della nota, come mostrato da list, quindi la nota 1 è la prima nota. La parola arriva come stringa.
  2. Rimuovi quella nota dall'archivio, poi salva le note in notes.json, nello stesso modo in cui add le salva. La nota 1 si trova all'indice 0 dell'array. Puoi inserire il codice per rimuoverla in notes.js oppure come metodo in store.js.
  3. Stampa Done: seguito dal testo della nota che hai rimosso. Con le note Buy milk, Call Ada e Water the plants, node notes.js done 1 stampa:
    Done: Buy milk
    A quel punto, notes.json contiene solo Call Ada e Water the plants. done 3 rimuove Water the plants.
  4. Se la parola non è il numero di una nota, non modificare nulla. Stampa No note seguito dalla parola su stderr ed esci con codice 1. Questo vale per una parola come abc, 0, un numero decimale come 2.5 e un numero superiore a quello dell'ultima nota, come 9 quando ci sono tre note. node notes.js done abc stampa 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);
}
quiz iconMettiti alla prova

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

Esercitati da solo: Playground Express