التصفية حسب النوع
جزء من قسم المنطق وتدفق التنفيذ في رحلة JavaScript على Coddy. الدرس 45 من 65.
التحدي
سهلأضف حالة filterByGenre جديدة إلى جملة switch الخاصة بك. يجب أن يقوم هذا الإجراء بتصفية الكتب حسب نوعها (genre).
بالنسبة لحالة filterByGenre:
- المعامل
currentDataهو سلسلة نصية تمثل النوع (genre) المراد التصفية بناءً عليه - أنشئ مصفوفة فارغة
filteredResultsلتخزين النتائج المصفاة - قم بالمرور عبر جميع الكتب في المكتبة
- لكل كتاب، تحقق مما إذا كان نوعه (genre) يطابق تماماً النوع المطلوب
- إذا كان هناك تطابق، أضف الكتاب إلى مصفوفة
filteredResults - أضف
filteredResultsإلى مصفوفةresultsالرئيسية
جرّب بنفسك
// Initialize library data
const libraryData = {
books: [
{
id: 1,
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
year: 1925,
genre: "Fiction",
isRead: false,
rating: 0,
borrowed: false,
borrowedBy: "",
borrowDate: ""
}
],
readers: [
{
name: "John Smith",
favoriteGenre: "Fiction",
}
]
};
function manageLibrary(actions, data) {
let results = [];
for (let i = 0; i < actions.length; i++) {
const currentAction = actions[i];
const currentData = data[i];
switch (currentAction) {
case 'printBooks':
results.push(libraryData.books);
break;
case 'printReaders':
results.push(libraryData.readers);
break;
case "addBook":
// Add a new book to the library
let newBook = {
id: libraryData.books.length + 1,
title: currentData.title,
author: currentData.author,
year: currentData.year,
genre: currentData.genre,
isRead: false,
rating: 0,
borrowed: false,
borrowedBy: "",
borrowDate: ""
};
libraryData.books.push(newBook);
results.push("Book added successfully!");
break;
case "searchByTitle":
// Search for books by title
let searchResults = [];
for(let i = 0; i < libraryData.books.length; i++) {
if(libraryData.books[i].title.toLowerCase().includes(currentData.toLowerCase())) {
searchResults.push(libraryData.books[i]);
}
}
results.push(searchResults);
break;
default:
results.push("Invalid action!");
}
}
return results;
}جميع دروس المنطق وتدفق التنفيذ
1السلاسل النصية بعمق
أساسيات السلاسل النصيةالتكرار عبر السلاسل النصيةTemplate Literalsدوال السلاسل النصيةمراجعة - String Weaver2المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات5المجموعات - الجزء الأول
ما هي المجموعة؟التكرار عبر المجموعاتإضافة عنصرإزالة عنصرالتحقق من وجود عنصرالحجم وهل هي فارغةالنسخ والمسحملخص - أساسيات المجموعات8مواضيع شيقة حول الـ Arrays
تفكيك الـ Arrayاستخدام الـ Spread Syntax في الـ Arraysالـ Sparse Arraysمراجعة - ورشة عمل الـ Arrays3JSON الجزء الأول
ما هو JSON؟التحقق من وجود المفتاحObject MethodsSpread Operator الجزء الأولSpread Operator الجزء الثانيحذف المفاتيحمراجعة - معالجة مفاتيح JSONتدرّب بنفسك: مترجم JavaScript عبر الإنترنت