Menu
CoddyTech

Bir Notu Silme

Coddy'nin Node.js Journey'sinin Node.js Temelleri bölümünün bir parçası. Ders 15 / 33.

done 2 2. notu kaldırmalı ve kullanıcılar done'dan sonra herhangi bir şey yazabilir.

Argümanlar dizelerdir: Number('2') 2'dir ve Number('two') NaN'dir. Number.isInteger, tek bir denetimde NaN'i ve 2.5'i reddeder; ardından aralığı denetle. Listeler 1'den, diziler ise 0'dan saymaya başlar; bu nedenle n. not n - 1 indeksinde bulunur ve splice(i, 1) onu kaldırır.

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

Görev

Kolay

Bir görevi bitirdiğinde onu tamamlandı olarak işaretlersin ve listeden çıkar. Bir notu numarasına göre kaldıran bir done komutu ekle.

  1. notes.js dosyasına bir done komutu ekle. done komutundan sonraki sözcük, list komutunun gösterdiği not numarasıdır; dolayısıyla 1. not ilk nottur. Bu sözcük bir metin olarak gelir.
  2. Bu notu depodan kaldır, ardından notları add komutunun yaptığı gibi notes.json dosyasına kaydet. 1. not, dizinin 0. indeksinde bulunur. Kaldırma kodunu notes.js dosyasına ya da store.js içinde bir yöntem olarak ekleyebilirsin.
  3. Kaldırdığın notun metninden önce Done: yazdır. Notlar Buy milk, Call Ada ve Water the plants olduğunda, node notes.js done 1 şu çıktıyı verir:
    Done: Buy milk
    Ardından notes.json dosyasında yalnızca Call Ada ve Water the plants kalır. done 3 komutu Water the plants notunu kaldırır.
  4. Sözcük bir not numarası değilse hiçbir şeyi değiştirme. stderr akışına sözcüğün önüne No note ekleyerek yazdır ve 1 koduyla çık. Bu, abc gibi bir sözcüğü, 0 değerini, 2.5 gibi bir ondalık sayıyı ve üç not varken 9 gibi son notun numarasını aşan bir sayıyı kapsar. node notes.js done abc komutu kırmızı renkte şu çıktıyı verir:
    No note abc

Deneyin: Notlarınızı ve numaralarını görmek için $ node notes.js ifadesinden sonra gelen kutuya list yazın. done 1, ardından tekrar list yazın: ilk not silinir ve diğer notların numaraları bir azalır. Ardından done abc yazın: kırmızı renkte No note abc mesajını görürsünüz ve çıkış kodu 1 olur; list komutu da önceki notların aynısını gösterir.

Kendin dene

// Notlar aracınız burada başlar.
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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Node.js Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Express playground