Skip to content

Commit

Permalink
new update
Browse files Browse the repository at this point in the history
  • Loading branch information
TeaByte committed Jan 6, 2024
1 parent 15ed628 commit 255e703
Show file tree
Hide file tree
Showing 25 changed files with 278 additions and 145 deletions.
31 changes: 31 additions & 0 deletions components/Nav.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
export default function NavBar() {
const menus = [
{ name: "later", href: "/" },
{ name: "later", href: "/docs" },
];

return (
<nav class="bg-base-300 w-full py-4 px-8 flex flex-col md:flex-row gap-4">
<div class="flex items-center flex-1">
<div class="flex items-center gap-1">
<image src="/logo.png" class="h-8 w-8" />
<a href="/" class="text-2xl ml-1 font-bold hover:animate-pulse">
NakhlahJS
</a>
</div>
</div>
<ul class="flex items-center gap-6">
{menus.map((menu) => (
<li>
<a
href={menu.href}
class={"text-gray-500 hover:text-gray-700 py-1 border-gray-500"}
>
{menu.name}
</a>
</li>
))}
</ul>
</nav>
);
}
28 changes: 17 additions & 11 deletions courses/arrays/intro.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
---
sidebar_position: 1
title: المصفوفات والتعامل معها
snippet: هو نوع بيانات في JavaScript يمثل بيانات مجموعة معا.
order: 1
---

# المصفوفات والتعامل معها

[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) هو نوع بيانات في JavaScript يمثل بيانات مجموعة معا.
[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)
هو نوع بيانات في JavaScript يمثل بيانات مجموعة معا.

## كتابة المصفوفات

باستخدام متغيرات مصفوفة JavaScript، يمكننا تخزين عدة أجزاء من البيانات في مكان واحد.
باستخدام متغيرات مصفوفة JavaScript، يمكننا تخزين عدة أجزاء من البيانات في مكان
واحد.

تبدأ تعريف المصفوفة بقوس مربع للفتح، وتنتهي بقوس مربع للإغلاق، وتضع فاصلة بين كل إدخال، كما يلي:
تبدأ تعريف المصفوفة بقوس مربع للفتح، وتنتهي بقوس مربع للإغلاق، وتضع فاصلة بين كل
إدخال، كما يلي:

```js
const sandwich = ["peanut butter", "jelly", "bread"];
Expand All @@ -23,31 +26,34 @@ const sandwich = ["peanut butter", "jelly", "bread"];
```js
const teams = [["Bulls", 23], ["White Sox", 45]];
```
ويسمى هذا أيضًا بمصفوفة متعددة الأبعاد (Multidimensional Array).

ويسمى هذا أيضًا بمصفوفة متعددة الأبعاد (Multidimensional Array).

## التعامل مع المصفوفات

يمكننا الوصول إلى البيانات داخل المصفوفات باستخدام الفهارس.

تتم كتابة فهارس المصفوفات بنفس تدوين الأقواس الذي تستخدمه السلاسل، باستثناء أنه بدلاً من تحديد حرف، فإنها تحدد إدخالاً في المصفوفة. مثل السلاسل النصية، تستخدم المصفوفات فهرسة صفرية، لذا فإن العنصر الأول في المصفوفة له فهرس يساوي 0.
تتم كتابة فهارس المصفوفات بنفس تدوين الأقواس الذي تستخدمه السلاسل، باستثناء أنه
بدلاً من تحديد حرف، فإنها تحدد إدخالاً في المصفوفة. مثل السلاسل النصية، تستخدم
المصفوفات فهرسة صفرية، لذا فإن العنصر الأول في المصفوفة له فهرس يساوي 0.

```js
const array = [50, 60, 70];
console.log(array[0]);
const data = array[1];
console.log(data);
```
يطبع ```console.log(array[0])``` ```50```، وتكون ```data``` لها القيمة ```60```.

يطبع `console.log(array[0])` `50`، وتكون `data` لها القيمة `60`.

## تعديل بيانات المصفوفات

على عكس السلاسل النصية، فإن مدخلات المصفوفات قابلة للتغيير ويمكن تغييرها بحرية، حتى لو تم تعريف المصفوفة باستخدام ```const```.
على عكس السلاسل النصية، فإن مدخلات المصفوفات قابلة للتغيير ويمكن تغييرها بحرية،
حتى لو تم تعريف المصفوفة باستخدام `const`.

```js
const Array = [50, 40, 30];
Array[0] = 15;
```
لدينا الآن قيمة المصفوفة ```[30, 40, 15]```.

لدينا الآن قيمة المصفوفة `[30, 40, 15]`.
44 changes: 29 additions & 15 deletions courses/arrays/manipulate-arrays.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
---
sidebar_position: 3
title: التعامل مع المصفوفات
snippet: push, pop, shift, unshift
order: 3
---

# التعامل مع المصفوفات

## push

هناك طريقة سهلة لإلحاق البيانات بنهاية المصفوفة عبر طريقة ```()push```.
هناك طريقة سهلة لإلحاق البيانات بنهاية المصفوفة عبر طريقة `()push`.

تأخذ الطريقة ```()push``` وسيطًا واحدًا أو أكثر وتلحقها بنهاية المصفوفة بالترتيب الذي تظهر به. تقوم بإرجاع الطول الجديد للمصفوفة.
تأخذ الطريقة `()push` وسيطًا واحدًا أو أكثر وتلحقها بنهاية المصفوفة بالترتيب الذي
تظهر به. تقوم بإرجاع الطول الجديد للمصفوفة.

```js
const arr1 = [1, 2, 3];
Expand All @@ -17,45 +18,58 @@ arr1.push(4, 5);
const arr2 = ["Stimpson", "J", "cat"];
arr2.push(["happy", "joy"]);
```
أصبح لـ ```arr1``` الآن القيمة``` [5, 4, 3, 2, 1]``` و ```arr2``` له القيمة ```[["happy", "joy"], "Stimpson", "J", "cat"]```.

أصبح لـ `arr1` الآن القيمة`[5, 4, 3, 2, 1]` و `arr2` له القيمة
`[["happy", "joy"], "Stimpson", "J", "cat"]`.

## pop

هناك طريقة أخرى لتغيير البيانات في المصفوفة وهي باستخدام الدالة ```()pop```.
هناك طريقة أخرى لتغيير البيانات في المصفوفة وهي باستخدام الدالة `()pop`.

يتم استخدام ```()pop``` لإخراج قيمة من نهاية المصفوفة. يمكننا تخزين هذه القيمة المنبثقة عن طريق إسنادها إلى متغير. بمعنى آخر، يقوم .```()pop``` بإزالة العنصر الأخير من المصفوفة وإرجاع هذا العنصر.
يتم استخدام `()pop` لإخراج قيمة من نهاية المصفوفة. يمكننا تخزين هذه القيمة
المنبثقة عن طريق إسنادها إلى متغير. بمعنى آخر، يقوم .`()pop` بإزالة العنصر
الأخير من المصفوفة وإرجاع هذا العنصر.

يمكن إخراج أي نوع من المدخلات من المصفوفة - أرقام، أو سلاسل، أو حتى صفائف متداخلة.
يمكن إخراج أي نوع من المدخلات من المصفوفة - أرقام، أو سلاسل، أو حتى صفائف
متداخلة.

```js
const threeArr = [1, 4, 6];
const oneDown = threeArr.pop();
console.log(oneDown);
console.log(threeArr);
```
سيعرض ```console.log``` الأول القيمة ```6``` ، وسيعرض الثاني القيمة ```[4, 1]```.

سيعرض `console.log` الأول القيمة `6` ، وسيعرض الثاني القيمة `[4, 1]`.

## shift

يقوم ()pop دائمًا بإزالة العنصر الأخير من المصفوفة. ماذا لو كنت تريد إزالة الأول؟

وهنا يأتي دور ```()shift```. فهو يعمل تمامًا مثل ()pop، باستثناء أنه يزيل العنصر الأول بدلاً من الأخير.
وهنا يأتي دور `()shift`. فهو يعمل تمامًا مثل ()pop، باستثناء أنه يزيل العنصر
الأول بدلاً من الأخير.

```js
const ourArray = ["Stimpson", "J", ["cat"]];
const removedFromOurArray = ourArray.shift();
```
```removeFromOURArray``` لها قيمة السلسلة ```Stimpson،``` و ```ourArray``` سيكون لها ```["J"، ["cat"]]```.

`removeFromOURArray` لها قيمة السلسلة `Stimpson،` و `ourArray` سيكون لها
`["J"، ["cat"]]`.

## unshift

لا يمكنك فقط إزاحة العناصر من بداية المصفوفة، بل يمكنك أيضًا إلغاء إزاحة العناصر إلى بداية المصفوفة، أي إضافة عناصر أمام المصفوفة.
لا يمكنك فقط إزاحة العناصر من بداية المصفوفة، بل يمكنك أيضًا إلغاء إزاحة العناصر
إلى بداية المصفوفة، أي إضافة عناصر أمام المصفوفة.

يعمل ```()unshift``` تمامًا مثل ()push، ولكن بدلاً من إضافة العنصر في نهاية المصفوفة، يضيف ```()unshift``` العنصر في بداية المصفوفة.
يعمل `()unshift` تمامًا مثل ()push، ولكن بدلاً من إضافة العنصر في نهاية المصفوفة،
يضيف `()unshift` العنصر في بداية المصفوفة.

```js
const ourArray = ["Stimpson", "J", "cat"];
ourArray.shift();
ourArray.unshift("Happy");
```
بعد ```shift``` سيكون لـ ```ourArray``` القيمة ```["J", "cat"]```. بعد ```unshift``` سيكون لـ ```ourArray``` القيمة ```["Happy"، "J"، "cat"]```.

بعد `shift` سيكون لـ `ourArray` القيمة `["J", "cat"]`. بعد `unshift` سيكون لـ
`ourArray` القيمة `["Happy"، "J"، "cat"]`.
16 changes: 10 additions & 6 deletions courses/arrays/multidimensional-index.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,26 @@
---
sidebar_position: 2
title: الوصول إلى المصفوفات متعددة الأبعاد
snippet: احدى طرق التفكير في المصفوفة متعددة الأبعاد
order: 2
---

# الوصول إلى المصفوفات متعددة الأبعاد

إحدى طرق التفكير في المصفوفة متعددة الأبعاد هي أنها مصفوفة من المصفوفات. عند استخدام الأقواس للوصول إلى المصفوفة الخاصة بك، تشير المجموعة الأولى من الأقواس إلى الإدخالات الموجودة في المصفوفة الخارجية (المستوى الأول)، ويشير كل زوج إضافي من الأقواس إلى المستوى التالي من الإدخالات بالداخل.
إحدى طرق التفكير في المصفوفة متعددة الأبعاد هي أنها مصفوفة من المصفوفات. عند
استخدام الأقواس للوصول إلى المصفوفة الخاصة بك، تشير المجموعة الأولى من الأقواس
إلى الإدخالات الموجودة في المصفوفة الخارجية (المستوى الأول)، ويشير كل زوج إضافي
من الأقواس إلى المستوى التالي من الإدخالات بالداخل.

```js
const arr = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[[10, 11, 12], 13, 14]
[[10, 11, 12], 13, 14],
];

const subarray = arr[3];
const nestedSubarray = arr[3][0];
const element = arr[3][0][1];
```
في هذا المثال، ```subarray``` له القيمة ```[[10, 11, 12], 13, 14]```، و ```nestedSubarray``` له القيمة ```[10, 11, 12]```، و ```element``` له القيمة ```11``` .

في هذا المثال، `subarray` له القيمة `[[10, 11, 12], 13, 14]`، و `nestedSubarray`
له القيمة `[10, 11, 12]`، و `element` له القيمة `11` .
10 changes: 3 additions & 7 deletions courses/comments.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
---
title: التعليقات
snippet: This is an excerpt of my first blog post.
snippet: تعد التعليقات طريقة رائعة لترك ملاحظات لنفسك
order: 2
---

# التعليقات

التعليقات عبارة عن أسطر من التعليمات البرمجية التي ستتجاهلها JavaScript عمدًا.
تعد التعليقات طريقة رائعة لترك ملاحظات لنفسك وللأشخاص الآخرين الذين سيحتاجون
لاحقًا إلى معرفة ما يفعله هذا التعليمات البرمجية.
Expand All @@ -27,11 +25,9 @@ order: 2
متعدد الأسطر */
```

:::tip إضافة

<mark>
أثناء كتابة التعليمات البرمجية، يجب عليك إضافة تعليقات بانتظام لتوضيح وظيفة
أجزاء من التعليمات البرمجية الخاصة بك. يمكن أن يساعد التعليق الجيد في إيصال
الهدف من التعليمات البرمجية الخاصة بك، سواء بالنسبة للآخرين أو لنفسك في
المستقبل.

:::
</mark>
6 changes: 2 additions & 4 deletions courses/intro.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
---
title: قبل أن تبداء
snippet: ابداء رحلتك في عالم البرمجة
snippet: بداية مثالية لرحلتك في عالم البرمجة
order: 1
---

## استعمال الموقع

هذا الدرس يشكل بداية مثالية لرحلتك في عالم البرمجة باستخدام هذه اللغة القوية.
سنرافقك خلال هذه الرحلة ونعرض لك كيفية الاستفادة القصوى من موقعنا لتحقيق أقصى
فائدة من تعلم جافاسكربت.
Expand All @@ -32,7 +30,7 @@ order: 1
استفسارك في المجتمع. أعضاء المجتمع الآخرين سيكونون سعداء بمساعدتك ومشاركة
تجاربهم معك. هذا التفاعل يمكن أن يجعل عملية التعلم أكثر سهولة ومتعة.

<mark>recommended</mark>
<!-- <mark>recommended</mark> -->

أنضم الان! [قناه التلغرام](https://t.me/NakhlahJS),
[جروب التلغرام](https://t.me/Unassisted)
2 changes: 1 addition & 1 deletion courses/numbers/_data.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"label": "المصفوفات",
"label": "الأرقام",
"order": 4
}
18 changes: 10 additions & 8 deletions courses/numbers/decimals.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
---
sidebar_position: 2
title: إنشاء أرقام عشرية
snippet: يمكننا تخزين الأرقام العشرية في المتغيرات أيضا
order: 2
---

# إنشاء أرقام عشرية

يمكننا تخزين الأرقام العشرية في المتغيرات أيضا. يُشار أحيانًا إلى الأرقام العشرية على أنها أرقام الفاصلة العائمة أو الأعداد العشرية.
يمكننا تخزين الأرقام العشرية في المتغيرات أيضا. يُشار أحيانًا إلى الأرقام العشرية
على أنها أرقام الفاصلة العائمة أو الأعداد العشرية.

```js
const ourDecimal = 5.7; // رقم عشري
```

في JavaScript، يمكنك أيضًا إجراء عمليات حسابية باستخدام الأعداد العشرية، تمامًا مثل الأعداد الصحيحة.
في JavaScript، يمكنك أيضًا إجراء عمليات حسابية باستخدام الأعداد العشرية، تمامًا
مثل الأعداد الصحيحة.

دعونا نقوم بإجراء عمليات حسابية باستخدام عددين عشريين معًا.

```js
const prd = 2.0 * 0.0;
console.log(prd) // 0
console.log(prd); // 0

const div = 1.0 / 2.0;
console.log(div) // 0.5
```
console.log(div); // 0.5
```
Loading

0 comments on commit 255e703

Please sign in to comment.