Menu
CoddyTech

Menghapus Catatan

Termasuk bagian Dasar-Dasar Node.js dalam perjalanan Node.js di Coddy. Pelajaran 15 dari 33.

done 2 seharusnya menghapus catatan 2, dan orang-orang mengetik apa pun setelah done.

Argumen berupa string: Number('2') adalah 2 dan Number('two') adalah NaN. Number.isInteger menolak NaN dan 2.5 dalam satu pengujian, lalu periksa rentangnya. List dihitung mulai dari 1 dan array mulai dari 0, jadi catatan n berada pada indeks n - 1, dan splice(i, 1) menghapusnya.

// 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

Tantangan

Mudah

Saat menyelesaikan tugas, kamu menandainya selesai dan catatan itu dihapus dari list. Tambahkan perintah done untuk menghapus catatan berdasarkan nomornya.

  1. Di notes.js, tambahkan perintah done. Kata setelah done adalah nomor catatan, seperti yang ditampilkan oleh list, jadi catatan 1 adalah catatan pertama. Kata tersebut diterima sebagai string.
  2. Hapus catatan itu dari penyimpanan, lalu simpan catatan ke notes.json, dengan cara yang sama seperti add menyimpannya. Catatan 1 berada pada indeks 0 di array. Kamu bisa menulis kode untuk menghapusnya di notes.js atau sebagai method di store.js.
  3. Cetak Done: diikuti teks catatan yang kamu hapus. Dengan catatan Buy milk, Call Ada, dan Water the plants, node notes.js done 1 mencetak:
    Done: Buy milk
    notes.json kemudian hanya berisi Call Ada dan Water the plants. done 3 menghapus Water the plants.
  4. Jika kata tersebut bukan nomor catatan, jangan ubah apa pun. Cetak No note diikuti kata tersebut ke stderr, lalu keluar dengan kode 1. Ini mencakup kata seperti abc, 0, angka desimal seperti 2.5, dan angka yang melebihi jumlah catatan, seperti 9 saat ada tiga catatan. node notes.js done abc mencetak ini dengan warna merah:
    No note abc

Coba: ketik list di kotak setelah $ node notes.js untuk melihat catatan dan nomornya. Ketik done 1, lalu list lagi: catatan pertama sudah dihapus dan nomor catatan lainnya naik satu. Lalu ketik done abc: kamu akan melihat No note abc dengan warna merah dan kode keluar 1, sedangkan list menampilkan catatan yang sama seperti sebelumnya.

Coba sendiri

// Alat catatanmu dimulai di sini.
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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar Node.js

Latihan sendiri: Playground Express