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)}`);Tantangan
MudahSaat menyelesaikan tugas, kamu menandainya selesai dan catatan itu dihapus dari list. Tambahkan perintah done untuk menghapus catatan berdasarkan nomornya.
- Di
notes.js, tambahkan perintahdone. Kata setelahdoneadalah nomor catatan, seperti yang ditampilkan olehlist, jadi catatan 1 adalah catatan pertama. Kata tersebut diterima sebagai string. - Hapus catatan itu dari penyimpanan, lalu simpan catatan ke
notes.json, dengan cara yang sama sepertiaddmenyimpannya. Catatan 1 berada pada indeks 0 di array. Kamu bisa menulis kode untuk menghapusnya dinotes.jsatau sebagai method distore.js. - Cetak
Done:diikuti teks catatan yang kamu hapus. Dengan catatanBuy milk,Call Ada, danWater the plants,node notes.js done 1mencetak:Done: Buy milknotes.jsonkemudian hanya berisiCall AdadanWater the plants.done 3menghapusWater the plants. - Jika kata tersebut bukan nomor catatan, jangan ubah apa pun. Cetak
No notediikuti kata tersebut ke stderr, lalu keluar dengan kode 1. Ini mencakup kata sepertiabc,0, angka desimal seperti2.5, dan angka yang melebihi jumlah catatan, seperti9saat ada tiga catatan.node notes.js done abcmencetak 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);
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar Node.js
1Menjalankan JavaScript di Node
Halo, NodeMembaca PerintahArgumen Baris PerintahPerintah5Peristiwa, Input, dan Package
Dengarkan Sebelum MengirimkanPemancar PeristiwaMembaca InputLatihan sendiri: Playground Express