fix(guide): simplify directory structure

This commit is contained in:
Mrugesh Mohapatra
2018-10-16 21:26:13 +05:30
parent f989c28c52
commit da0df12ab7
35752 changed files with 0 additions and 317652 deletions

View File

@@ -0,0 +1,16 @@
---
title: Access Array Data with Indexes
localeTitle: الوصول صفيف البيانات مع فهارس
---
## الوصول صفيف البيانات مع فهارس
العنصر الأول لصفيف هو في الموضع صفر. لذلك ، إذا كنت ترغب في الوصول إلى العنصر الأول من صفيف ، يمكنك القيام بذلك على النحو التالي:
`var arr = ["Programming", 123, "Coding", 789];
var firstElem = arr[0] // This is "Programming"
var thirdElem = arr[2] // This is "Coding"
var fourthElem = arr[3] // This is 789
`
لاحظ أن طول الصفيف هو 4 ، وأن موضع آخر عنصر في المصفوفة هو 3.

View File

@@ -0,0 +1,26 @@
---
title: Access Multi-Dimensional Arrays With Indexes
localeTitle: الوصول إلى صفائف متعددة الأبعاد مع فهارس
---
## الوصول إلى صفائف متعددة الأبعاد مع فهارس
النظر في مجموعة متعددة الأبعاد التالية:
`var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]];
`
هذا ما يبدو في شكل جداول.
| الموقف 0 | 1 | 2 | 3 | | --- | --- | --- | --- | --- | | **0** | 1 | 4 | 7 | 10 | | **1** | 2 | 5 | 8 | 11 | | **2** | 3 | 6 | 9 | 12 |
الآن كل ما عليك فعله هو اختيار إحداثيات البيانات التي تريدها! للحصول على أمثلة ، إذا أردنا أن تساوي `myNum` 8 ، إذن ...
`var myNum = arr[2][1]; // Equal to 8
`
أو ، إذا كنت تريد أن تساوي 1. عليك ...
`var myNum = arr[0][0]; // Equal to 1
`
تبدأ أولاً باختيار العمود الموجود فيه ، ثم تختار الصف. انها نوع من مثل الطائرة تنسيق XY!

View File

@@ -0,0 +1,65 @@
---
title: Accessing Nested Arrays
localeTitle: الوصول إلى صفائف متداخلة
---
## الوصول إلى صفائف متداخلة
### الوصول إلى عناصر داخل صفيف باستخدام تدرج قوس `[]`
`var fruitBasket = ['apple', 'banana' 'orange', 'melon'];
var favoriteFruit = fruitBasket[2];
console.log(favoriteFruit) // 'orange'
`
في هذا المثال ، `fruitBasket` المفضلة هي "برتقالي" وهي في الفهرس `2` في مجموعة `fruitBasket` . باستخدام تدوين braket ، نقوم بتعيين مؤشر `2` من مجموعة `fruitBasket` إلى `favoriteFruit` . هذا يجعل `favoriteFruit` يساوي "برتقالي".
### الوصول إلى الكائنات داخل المصفوفات باستخدام braket `[]` ونقطة `.` الرموز
`var garage = [
{
type: 'car',
color: 'red',
make: 'Ford'
},
{
type: 'motorbike',
color: 'black',
make: 'Yamaha'
},
{
type: 'bus',
color: 'yellow',
make: 'Blue Bird'
}
];
var busColor = garage[2].color; // 'yellow'
`
## حل:
`// Setup
var myPlants = [
{
type: "flowers",
list: [
"rose",
"tulip",
"dandelion"
]
},
{
type: "trees",
list: [
"fir",
"pine",
"birch"
]
}
];
// Only change code below this line
var secondTree = myPlants[1].list[1];
`

View File

@@ -0,0 +1,48 @@
---
title: Accessing Nested Objects
localeTitle: الوصول إلى الكائنات المتداخلة
---
## الوصول إلى الكائنات المتداخلة
فكرة: **_"استخدام تدرج قوس الخصائص مع مساحة في أسمائهم."_**
إذا نظرنا إلى هدفنا:
`var myStorage = {
"car": {
"inside": {
"glove box": "maps",
"passenger seat": "crumbs"
},
"outside": {
"trunk": "jack"
}
}
};
`
اسم هدفنا هو `myStorage` .
| - داخل أن لدينا كائن متداخل يسمى `car` .
| --- داخل ذلك لدينا اثنين آخرين يسمى `inside` `outside` كل منهما الممتلكات الخاصة
يمكنك تصور بنية الكائن مثل هذا ، إذا كانت تساعد:
`myStorage
|-- car
|--- inside
|----- glove box: maps
|----- passenger seat: crumbs
|--- outside
|----- trunk: jack
`
مطلوب منا تعيين محتويات `glove box` ، والتي يمكننا رؤيتها متداخلة في الكائن `inside` ، والتي بدورها متداخلة في جسم `car` .
يمكننا استخدام الترميز النقطي للوصول إلى `glove box` النحو التالي:
`var gloveBoxContents = myStorage.car.inside'complete here'
`
يجب عليك استبدال `complete here` بالطريقة الصحيحة للوصول إلى الخاصية. انظر فكرة أعلاه إذا واجهتك مشكلة.

View File

@@ -0,0 +1,19 @@
---
title: Accessing Object Properties with Bracket Notation
localeTitle: الوصول إلى خصائص كائن مع تدرج قوس
---
## الوصول إلى خصائص كائن مع تدرج قوس
فيما يلي حل واحد ممكن:
`var testObj = {
"an entree": "hamburger",
"my side": "veggies",
"the drink": "water"
};
// Only change code below this line
var entreeValue = testObj["an entree"]; // Change this line
var drinkValue = testObj["the drink"]; // Change this line
`

View File

@@ -0,0 +1,19 @@
---
title: Accessing Object Properties with Dot Notation
localeTitle: الوصول إلى خصائص كائن مع ترميز Dot
---
## الوصول إلى خصائص كائن مع ترميز Dot
فيما يلي حل واحد ممكن:
`var testObj = {
"hat": "ballcap",
"shirt": "jersey",
"shoes": "cleats"
};
// Only change code below this line
var hatValue = testObj.hat; // Change this line
var shirtValue = testObj.shirt; // Change this line
`

View File

@@ -0,0 +1,20 @@
---
title: Accessing Object Properties with Variables
localeTitle: الوصول إلى خصائص الكائن مع المتغيرات
---
## الوصول إلى خصائص الكائن مع المتغيرات
إليك حلًا عمليًا في حالة عطلك:
`// Setup
var testObj = {
12: "Namath",
16: "Montana",
19: "Unitas"
};
// Only change code below this line;
var playerNumber = 16; // Change this Line
var player = testObj[playerNumber]; // Change this Line
`

View File

@@ -0,0 +1,30 @@
---
title: Add New Properties to a JavaScript Object
localeTitle: أضف خصائص جديدة إلى كائن JavaScript
---
## أضف خصائص جديدة إلى كائن JavaScript
هنا هو المثال:
`var ourDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
"friends": ["everything!"]
};
ourDog.bark = "bow-wow";
`
وإليك الحل:
`var myDog = {
"name": "Happy Coder",
"legs": 4,
"tails": 1,
"friends": ["freeCodeCamp Campers"]
};
// Only change code below this line.
myDog.bark = "woof";
`

View File

@@ -0,0 +1,10 @@
---
title: Add Two Numbers with JavaScript
localeTitle: أضف رقمين مع JavaScript
---
# أضف رقمين مع JavaScript
تستخدم JavaScript الرمز `+` للإضافة.
`var sum = 10 + 10; //sum gets the value 20
`

View File

@@ -0,0 +1,26 @@
---
title: Adding a Default Option in Switch Statements
localeTitle: إضافة خيار افتراضي في تبديل البيانات
---
# إضافة خيار افتراضي في تبديل البيانات
* تؤدي إضافة خيار افتراضي إلى التأكد من أنه في حالة عدم تطابق المتغير الخاص بك مع أي من الخيارات ، فسيتم استخدام الإعداد الافتراضي.
## حل:
`function switchOfStuff(val) {
var answer = "";
switch(val){
case 'a': answer = 'apple';
break;
case 'b': answer = 'bird';
break;
case 'c': answer = 'cat';
break;
default: answer = 'stuff';
}
return answer;
}
`

View File

@@ -0,0 +1,12 @@
---
title: Appending Variables to Strings
localeTitle: إلحاق المتغيرات بالسلاسل
---
## إلحاق المتغيرات بالسلاسل
تأكد من صحة التهجئة والمسافات. يمكن إتمام سلاسل الإضافة (المخزنة داخل المتغيرات) كما يلي:
`var adj = "happy!";
var sent = "Today, I woke up being ";
sent += adj; // The result is "Today, I woke up being happy!"
`

View File

@@ -0,0 +1,12 @@
---
title: Assignment with a Returned Value
localeTitle: التنازل مع القيمة المرتجعة
---
## التنازل مع القيمة المرتجعة
تعمل الوظائف كعناصر نائبة للبيانات التي يتم إخراجها. بشكل أساسي ، يمكنك تعيين إخراج دالة إلى متغير ، تمامًا مثل أي بيانات عادية.
هنا هو الحل الأساسي رمز:
`processed = processArg(7); // Equal to 2
`

View File

@@ -0,0 +1,19 @@
---
title: Build JavaScript Objects
localeTitle: بناء كائنات جافا سكريبت
---
# بناء كائنات جافا سكريبت
تشبه الكائنات الصفائف ، إلا أنه بدلاً من استخدام الفهارس للوصول إلى بياناتها وتعديلها ، يمكنك الوصول إلى البيانات الموجودة في الكائنات من خلال ما يسمى الخصائص.
هنا كائن عينة:
`var cat = {
"name": "Whiskers",
"legs": 4,
"tails": 1,
"enemies": ["Water", "Dogs"]
};
`
تُعد الكائنات مفيدة لتخزين البيانات بطريقة منظمة ، ويمكن أن تمثل كائنات العالم الحقيقي ، مثل القطط.

View File

@@ -0,0 +1,62 @@
---
title: Chaining If Else Statements
localeTitle: تسلسل إذا كانت تصريحات أخرى
---
## تسلسل إذا كانت تصريحات أخرى
* `If` : الشرطي الأول في كل عبارة if / else ، فيكون الشرط _صحيحًا_ ، وتنفيذ التعليمات البرمجية وتجاهل الباقي.
* `Else if` : لا يمكن أبدا أن تستخدم كأول شرطي. دائمًا ما يكون مشروطًا بعد ، `if` الشرط صحيحًا ، فنفذ الشفرة. على خلاف ذلك يقفز إلى الشرطي المقبل.
* `Else` : إذا كانت جميع الشروط الشرطية السابقة اطئة_ ، **فسيتم** تنفيذ **آخر** .
### شرح المشكلة:
_كتابة مقيد `if` / `else if` العبارات تستوفي الشروط التالية_ :
_`num < 5` - عودة "صغيرة" `num < 10` - عودة "صغير" `num < 15` - عودة "متوسطة" `num < 20` - عودة "كبير" `num >= 20` - return "Huge"_
#### تلميح 1
تذكر أنه يمكنك الجمع بين (سلسلة) عدة `if...else` عبارات أخرى واحدة تلو الأخرى حتى آخر واحد باستخدام `else if (condition) {do this}` .
> اول أن تحل المشكلة الآن_
>
> #### تلميح 2
>
> في بعض الأحيان ، عندما تكتب رمزًا أكثر مما اعتدت عليه ولا يعمل ، فإن الأشياء الصغيرة هي ما يخوننا. يمكن أن يكون التحقق من الفواصل المنقوطة والأقواس المعقوفة وغير ذلك مفيدًا جدًا. _حاول أن تحل المشكلة الآن_
## تنبيه المفسد!
**الحل في المستقبل!**
## حل:
`function testSize(num) {
// Only change code below this line
if (num < 5){
return "Tiny";
}
else if (num < 10) {
return "Small";
}
else if (num < 15){
return "Medium";
}
else if (num < 20){
return "Large";
}
else {
return "Huge";
}
// Only change code above this line
}
`
تشغيل الكود في [repl.it](https://repl.it/@AdrianSkar/Basic-JS-Chaining-ifelse-statements)
### تفسير الشفرة
تتحقق الدالة أولاً من `if` الشرط `(num < 5)` . إذا قيّمت إلى `true` ، فإنها ترجع العبارة بين الأقواس المتعرجة ("Tiny"). إذا لم يحدث ذلك ، فإنه يتحقق الشرط التالي حتى `else` بيان `else` .
### مصادر
* ["if… else" - _MDN JavaScript reference_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if…else)

View File

@@ -0,0 +1,21 @@
---
title: Comment Your JavaScript Code
localeTitle: تعليق كود جافاسكريبت الخاص بك
---
## تعليق كود جافاسكريبت الخاص بك
تسمح لك عملية التعليق بكتابة أشياء لا تريد أن يعمل الكمبيوتر عليها ككود. على سبيل المثال ، ملاحظات للمبرمجين الآخرين ، والاتجاهات ، وأكثر من ذلك. فيما يلي كيفية إنشاء تعليق سطر واحد.
`// Hey, I'm a comment!
`
الآن ، إذا كنت ترغب في التعليق على فقرة كاملة ، يمكن تحقيق ذلك بسهولة باستخدام ...
`/*
Hey, I'm a paragraph comment.
This allows for programmers to
write tons and tons of random
words, without the fear of me
being compiled!
*/
`

View File

@@ -0,0 +1,45 @@
---
title: Comparison with the Equality Operator
localeTitle: مقارنة مع مشغل المساواة
---
## مقارنة مع مشغل المساواة
### شرح المشكلة:
_أضف عامل المساواة إلى الخط المحدد بحيث تقوم الدالة بإرجاع "Equal" عندما يكون `val` مساويًا لـ 12._
#### تلميح 1
تذكر أن _المساواة تختلف عن الواجب ( `=` ) ، الذي يعين القيمة على يمين المشغل إلى متغير في اليسار._ [1](#cite1)
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
**الحل في المستقبل!**
## حل الرمز الأساسي:
`function testEqual(val) {
if (val == 12) { // Change this line
return "Equal";
}
return "Not equal";
}
// Change this value to test
testEqual(10);
`
[تشغيل الكود في repl.it](https://repl.it/@AdrianSkar/Basic-JS-Equality-operator)
### تفسير الشفرة
تقوم الدالة أولاً بتقييم `if` تقييم الحالة `(val == 12)` إلى `true` . إذا كان كذلك ، فإنها ترجع العبارة بين الأقواس المتعرجة ("مساواة"). إذا لم يكن الأمر كذلك ، فإنه يُرجع بيان `return` التالي خارجها ("لا يساوي").
### مصادر
1 . ["جافا سكريبت الأساسية: مقارنة مع مشغل المساواة" ، درس لجنة الاتصالات الفدرالية في _خوارزميات جافا سكريبت وهيكلة البيانات_](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-equality-operator)
### مصادر
* ["مشغل المساواة" - _مرجع جافا سكريبت MDN_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Equality_())

View File

@@ -0,0 +1,20 @@
---
title: Comparison with the Greater Than Operator
localeTitle: مقارنة مع أكبر من المشغل
---
## مقارنة مع أكبر من المشغل
`>` (أكبر من) هو عامل منطقي يقوم بإرجاع الحالة الحقيقية ، حيث تكون القيمة الموجودة على اليسار أعلى من القيمة الموجودة على اليمين.
## الحل الأساسي
`function testGreaterThan(val) {
if (val > 100)
return "Over 100";
if (val > 10)
return "Over 10";
return "10 or Under";
}
`

View File

@@ -0,0 +1,20 @@
---
title: Comparison with the Greater Than Or Equal To Operator
localeTitle: مقارنة مع أكبر من أو يساوي المشغل
---
## مقارنة مع أكبر من أو يساوي المشغل
* `>=` (أكبر من أو يساوي) هو عامل منطقي يقوم بإرجاع الحالة الحقيقية ، القيمة الموجودة على اليسار هي **نفسها أو أعلى** من القيمة الموجودة على اليمين.
## الحل الأساسي
`function testGreaterOrEqual(val) {
if (val >= 20)
return "20 or Over";
if (val >= 10)
return "10 or Over";
return "Less than 10";
}
`

View File

@@ -0,0 +1,18 @@
---
title: Comparison with the Inequality Operator
localeTitle: مقارنة مع مشغل عدم المساواة
---
## مقارنة مع مشغل عدم المساواة
* `!=` (Inequality) هو عامل تشغيل منطقي يقوم بإرجاع الحالة true ، تختلف القيمة الموجودة على اليسار عن القيمة الموجودة على اليمين.
* يعتبر عامل عدم المساواة `7` و `"7"` نفس الشيء لأنه لا يقارن نوع المتغير.
## الحل الأساسي
`function testNotEqual(val) {
if (val != 99)
return "Not Equal";
return "Equal";
}
`

View File

@@ -0,0 +1,20 @@
---
title: Comparison with the Less Than Operator
localeTitle: مقارنة مع أقل من المشغل
---
## مقارنة مع أقل من المشغل
**`<`** (أقل من) هو عامل تشغيل منطقي يقوم بإرجاع الحالة الحقيقية تكون القيمة الموجودة على اليسار أقل من القيمة الموجودة على اليمين.
## الحل الأساسي
`function testLessThan(val) {
if (val < 25)
return "Under 25";
if (val < 55)
return "Under 55";
return "55 or Over";
}
`

View File

@@ -0,0 +1,20 @@
---
title: Comparison with the Less Than Or Equal To Operator
localeTitle: مقارنة مع أقل من أو يساوي المشغل
---
## مقارنة مع أقل من أو يساوي المشغل
**`<=`** (أقل من أو يساوي) هو عامل تشغيل منطقي يقوم بإرجاع الحالة الحقيقية إلى أن القيمة الموجودة على اليسار هي **نفسها أو أقل** من القيمة الموجودة على اليمين.
## الحل الأساسي
`function testLessOrEqual(val) {
if (val <= 12)
return "Smaller Than or Equal to 12";
if (val <= 24)
return "Smaller Than or Equal to 24";
return "More Than 24";
}
`

View File

@@ -0,0 +1,55 @@
---
title: Comparison with the strict equality operator
localeTitle: مقارنة مع مشغل المساواة الصارمة
---
## مقارنة مع مشغل المساواة الصارمة
### شرح المشكلة:
· _استخدم عامل المساواة الصارم في العبارة `if` لذلك ستعود الدالة "Equal" عندما يكون `val` تساوي تمامًا `7` ._
#### تلميح 1
تذكر من التمرين الأخير أن _المساواة تختلف عن الواجب ( `=` ) ، الذي يعين القيمة على يمين المشغل إلى متغير في اليسار._ [1](#cite1)
> اول أن تحل المشكلة الآن_
>
> #### تلميح 2
>
> _على عكس مشغل المساواة ، والذي يحاول تحويل كلتا القيمتين مقارنة بالنوع الشائع ، فإن مشغل المساواة الصارم لا يقوم بتحويل نوع._ [2](#cite2) _حاول أن تحل المشكلة الآن_
## تنبيه المفسد!
**الحل في المستقبل!**
## حل الرمز الأساسي:
`// Setup
function testStrict(val) {
if (val === 7) { // Change this line
return "Equal";
}
return "Not equal";
}
// Change this value to test
testStrict(10);
`
### تفسير الشفرة
تقوم الدالة أولاً بتقييم `if` الشرط `(val === 7)` تقييمه إلى `true` . إذا كان كذلك ، فإنها ترجع العبارة بين الأقواس المتعرجة ("مساواة"). إذا لم يكن الأمر كذلك ، فإنه يُرجع بيان `return` التالي خارجها ("لا يساوي").
### مصادر
1 . ["جافا سكريبت الأساسية: مقارنة مع مشغل المساواة" ، درس لجنة الاتصالات الفدرالية في _خوارزميات جافا سكريبت وهيكلة البيانات_](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-equality-operator)
2 . ["جافا سكريبت الأساسي: مقارنة مع مشغل المساواة الصارمة" ، درس لجنة الاتصالات الفيدرالية في _خوارزميات جافا سكريبت وشهادات البيانات_](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-strict-equality-operator)
### مصادر
* ["if… else" - _MDN JavaScript reference_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if…else)
* [كوندوف ، الكسندر. "فهم JS: الإكراه". _Hackernoon_](https://hackernoon.com/understanding-js-coercion-ff5684475bfc) ، Accessed 15 Sep. 2018
* ["مشغِّلو المقارنات" - _مرجع جافا سكريبت MDN_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators)

View File

@@ -0,0 +1,40 @@
---
title: Comparison with the Strict Inequality Operator
localeTitle: مقارنة مع مشغل عدم المساواة الصارم
---
## مقارنة مع مشغل عدم المساواة الصارم
### شرح المشكلة:
· _أضف `strict inequality operator` إلى العبارة `if` بحيث ستعود الدالة "غير متساوية" عندما لا يكون `val` مساوياً تمامًا لـ `17` ._
#### تلميح 1
سيعود عامل عدم المساواة الصارم ( `!==` ) إلى `true` إذا كانت القيمة الأولى لا تساوي النوع الثاني الذي يأخذ نوع القيمة في الاعتبار.
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
**الحل في المستقبل!**
## حل الرمز الأساسي:
`function testStrictNotEqual(val) {
if (val !== 17) {
return "Not equal";
}
return "Equal";
}
// Change this value to test
testStrictNotEqual(10);
`
### تفسير الشفرة
تقوم الدالة أولاً بتقييم `if` الشرط `(val !== 17)` تقييمه إلى `true` نظرًا لنوع القيمة والقيمة. إذا كان كذلك ، فإنها ترجع العبارة بين الأقواس المتعرجة ("غير متساوية"). إذا لم يكن الأمر كذلك ، فإنه يُرجع بيان `return` التالي خارجها ("مساواة").
### مصادر
* ["Non-identity / strict inequality (! ==)" - _MDN JavaScript reference_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Non-identity_strict_inequality_(!))

View File

@@ -0,0 +1,52 @@
---
title: Comparisons with the && (logical AND) operator
localeTitle: مقارنات مع عامل التشغيل && (المنطقية AND)
---
## مقارنات مع عامل التشغيل && (المنطقية AND)
### شرح المشكلة:
· قم _بدمج البيانين إذا كانا في بيان واحد والذي سيعود `"Yes"` إذا كان `val` أقل من أو يساوي `50` وأكبر من أو يساوي `25` . خلاف ذلك ، سيعود `"No"` ._
#### تلميح 1
عامل التشغيل المنطقي AND ( `&&` ) يقارن كلا عبارات وإرجاع `true` فقط إذا كان كلاهما صحيحًا أو يمكن تحويله إلى true (صواب).
> اول أن تحل المشكلة الآن_
#### تلميح 2
تذكر أن هذا التأثير لا يمكن أن يتحقق أيضا من أن تعشش `if` البيانات.
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
**الحل في المستقبل!**
## حل الرمز الأساسي:
`function testLogicalAnd(val) {
// Only change code below this line
if (val <= 50 && val >= 25) {
return "Yes";
}
// Only change code above this line
return "No";
}
// Change this value to test
testLogicalAnd(10);
`
[تشغيل الكود في repl.it](https://repl.it/@AdrianSkar/Basic-JS-Comparison-with-the-and-operator)
### تفسير الشفرة
وظيفة بتقييم أولا `if` شرط `val <= 50` تقييمها إلى `true` تحويل `val` لعدد إذا لزم الأمر، ثم يفعل نفس الشيء مع `val >=25` بسبب AND (المنطقي `&&` ) المشغل. إذا كان كلاهما العودة true ، يتم تنفيذ العبارة `return "Yes"` .
### مصادر
* ["العوامل المنطقية" - _مرجع جافا سكريبت MDN_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators)

View File

@@ -0,0 +1,18 @@
---
title: Comparisons with the Logical Or Operator
localeTitle: مقارنات مع المنطقي أو المشغل
---
## مقارنات مع المنطقي أو المشغل
### الدليل: اتبع الكود الموجود في المثال
**تنبيه المفسد**
أدناه هو نموذج التعليمة البرمجية (أبسط طريقة).
`if ( val < 10 || val > 20 ) {
return "Outside";
}
`
سيعود الرمز أعلاه "خارجي" فقط إذا كان `val` يتراوح بين 10 و 20 (ضمناً).

View File

@@ -0,0 +1,11 @@
---
title: Compound Assignment With Augmented Addition
localeTitle: مهمة مركبة مع إضافة مضافة
---
## مهمة مركبة مع إضافة مضافة
قراءة أجهزة الكمبيوتر من اليسار إلى اليمين. لذا ، فإن استخدام عامل التشغيل '+ =' يعني أنه يتم إضافة المتغير مع العدد الصحيح ، ثم يتم تعيين المتغير للمجموع. مثل ذلك:
`var a = 9;
a += 10; // Now, 'a' is equal to 19
`

View File

@@ -0,0 +1,11 @@
---
title: Compound Assignment With Augmented Division
localeTitle: تكليف مركب مع قسم معزز
---
## تكليف مركب مع قسم معزز
قراءة أجهزة الكمبيوتر من اليسار إلى اليمين. لذا ، فإن استخدام معامل '/ =' يعني أن المتغير مقسوم مع الرقم الموجود على اليمين ، ثم يتم تعيين المتغير إلى الحاصل. مثل ذلك:
`var d = 10;
d /= 5; // Now, 'd' is equal to 2
`

View File

@@ -0,0 +1,11 @@
---
title: Compound Assignment With Augmented Multiplication
localeTitle: مهمة مركبة مع تكاثر مضاعف
---
## مهمة مركبة مع تكاثر مضاعف
قراءة أجهزة الكمبيوتر من اليسار إلى اليمين. لذا ، فإن استخدام عامل تخصيص الضرب يعني أن المتغير قد تضاعف مع الرقم الموجود على اليمين ، ثم يتم تعيين المتغير للمنتج. مثل ذلك:
`var c = 2;
c *= 3; // Now, 'c' is equal to 6
`

View File

@@ -0,0 +1,11 @@
---
title: Compound Assignment With Augmented Subtraction
localeTitle: مهمة مركبة مع الطرح المعزز
---
## مهمة مركبة مع الطرح المعزز
قراءة أجهزة الكمبيوتر من اليسار إلى اليمين. لذا ، فإن استخدام عامل التشغيل '- =' يعني أن المتغير يطرح بواسطة الرقم الموجود على اليمين ، ثم يتم تعيين المتغير إلى الفرق. مثل ذلك:
`var b = 10;
b -= 4; // Now, 'b' is 6
`

View File

@@ -0,0 +1,11 @@
---
title: Concatenating Strings with Plus Operator
localeTitle: سلاسل متسلسلة مع Plus Operator
---
## سلاسل متسلسلة مع Plus Operator
سلسلات وسيلة للربط معا. فكر في المشغل '+' مثل سلسلة ربط السلاسل معًا ؛ أضف السلاسل تمامًا كما تضيف أرقامًا. تأكد من صحة إملاء الكلمات! يحيط علما بالمسافات بين الكلمات.
`var str = "Good " + "job!" // It says "Good job!"
var abc = "Good" + "job!" // It says "Goodjob!"
`

View File

@@ -0,0 +1,12 @@
---
title: Concatenating Strings with the Plus Equals Operator
localeTitle: سلاسل متسلسلة مع Plus Equals Operator
---
## سلاسل متسلسلة مع Plus Equals Operator
يمكن أن يقوم المشغل '+ =' بتسلسل (الوصلة) بسهولة. تأكد من أن التهجئة صحيحة ، وأنك تركت المساحات المناسبة.
`var str = "Hello ";
str += "coding"; // Now the string reads "Hello coding"
str += "camper!"; // And now the string reads "Hello codingcamper!"
`

View File

@@ -0,0 +1,13 @@
---
title: Constructing Strings with Variables
localeTitle: بناء سلاسل مع المتغيرات
---
## بناء سلاسل مع المتغيرات
إضافة المتغيرات التي تخزن السلاسل ، لإنشاء سلاسل أطول. تأكد من صحة التهجئة والمسافات.
`var myName = "Bobby";
var myFavLetter = "B";
var sentence = "Hello, I'm " + myName + ". My favorite letter is " + myFavLetter + ".";
//The result is "Hello, I'm Bobby. My favorite letter is B.
`

View File

@@ -0,0 +1,45 @@
---
title: Count Backwards With a For Loop
localeTitle: عد إلى الخلف مع ل حلقة
---
## عد إلى الخلف مع ل حلقة
هنا هو المثال:
`// Example
var ourArray = [];
for (var i = 10; i > 0; i -= 2) {
ourArray.push(i);
}
// Setup
var myArray = [];
// Only change code below this line.
`
#### تلميح: 1
* إنشاء حلقة جديدة من أجل myArray
#### تلميح: 2
* تبدأ من أول رقم فردي قبل 9
# تحذير SPOILER: SOLUTION AHEAD
`var ourArray = [];
for (var i = 10; i > 0; i -= 2) {
ourArray.push(i);
}
// Setup
var myArray = [];
// Only change code below this line.
for (var i = 9; i > 0; i-=2){
myArray.push(i)
}
`

View File

@@ -0,0 +1,132 @@
---
title: Counting Cards
localeTitle: عد بطاقات
---
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": triangular_flag_on_post:") تذكر استخدام **`Read-Search-Ask`** إذا واجهتك مشكلة. حاول إقران البرنامج ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": busts_in_silhouette:") واكتب الكود الخاص بك ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":قلم:")
### ![:checkered_flag:](https://forum.freecodecamp.com/images/emoji/emoji_one/checkered_flag.png?v=3 ":العلم متقلب:") شرح المشكلة:
في لعبة الكازينو **Blackjack** ، يمكن للاعب الحصول على ميزة على المنزل من خلال تتبع العدد النسبي للبطاقات العالية والمنخفضة المتبقية في سطح السفينة. وهذا ما يسمى حساب البطاقات.
وجود المزيد من البطاقات العالية المتبقية في سطح السفينة تفضل اللاعب. يتم تعيين قيمة لكل بطاقة وفقًا للجدول أدناه. عندما يكون العد موجبًا ، يجب أن يراهن اللاعب عالياً. عندما يكون العدد صفرًا أو سلبيًا ، يجب على اللاعب الرهان منخفضًا.
القيمة | بطاقات
\----- | : -------------------:
+1 | 2 و 3 و 4 و 5 و 6
0 | 7 و 8 و 9
\-1 | 10 ، 'J' ، 'Q' ، 'K' ، 'A'
ستكتب وظيفة حساب البطاقة. سوف تتلقى معلمة **بطاقة** وزيادة أو إنقاص متغير **العد** العالمي وفقا لقيمة البطاقة (انظر الجدول). ستقوم الدالة بعد ذلك بإرجاع سلسلة مع العدد الحالي وسلسلة `Bet` إذا كان العدد موجبًا ، أو `Hold` إذا كان العدد صفراً أو سالباً. يجب فصل العدد الحالي وقرار اللاعب ( `Bet` أو `Hold` ) بمسافة واحدة.
* تغيير الرمز أدناه `// Only change code below this line` وحتى `// Only change code above this line`
* تأكد من أنك تقوم بتحرير داخل وظيفة `cc` .
* استخدم ما تعلمته للتحقق من قيمة كل معلمة **بطاقة** تم تمريرها إلى الدالة.
* احتفظ بحساب التشغيل لهذا الرقم.
* إذا كان العدد النهائي 1 أو أكبر ، فأرجع **\# Hold** .
* إذا كان العدد النهائي 0 أو أقل ، **فأرجع # Bet** .
**مثال على الناتج:**
* \-3 عقد
* 5 الرهان
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 1
استخدم عبارة `switch` (أو `else if` ) لحساب قيمة كل بطاقة.
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 2
إضافة / طرح قيمة كل بطاقة إلى **عدد** المتغيرات. إذا كانت قيمة البطاقة تساوي 0 ، فلا تفعل أي شيء.
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 3
بعد قيامك بحساب البطاقات ، استخدم العبارة `if` للتحقق من قيمة **العد** . أيضا، وتأكد من `return` لديها مساحة بين عدد والسلسلة.
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
![علامة تحذير](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**الحل في المستقبل!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ":مبتدئ:") الحل الأساسي للكود:
` function cc(card) {
// Only change code below this line
switch(card){
case 2:
case 3:
case 4:
case 5:
case 6:
count++;
break;
case 10:
case "J":
case "Q":
case "K":
case "A":
count--;
break;
}
if (count > 0){
return count + " Bet";
} else {
return count + " Hold";
}
// Only change code above this line
}
`
### شرح الشفرة:
* تحقق من قيمة كل بطاقة من خلال بيان `switch` .
* **عدد** المتغيرات:
* يزيد بمقدار 1 إذا كانت البطاقة 2 أو 3 أو 4 أو 5 أو 6.
* نظرًا لأن 7 و 8 و 9 لا تستحق أي شيء ، فإننا نتجاهل تلك البطاقات في بيان `switch` بنا.
* تنخفض بمقدار 1 إذا كانت البطاقة 10 أو "J" أو "Q" أو "K" أو "A".
* تحقق من قيمة **العد** وأعد الاستجابة المناسبة.
**مثال تشغيل**
* `cc(2);` أشواط.
* تصل العبارة `switch` إلى `case 2` ، وتقفز للأسفل وتضيف 1 إلى `count` المتغيرات.
* ثم يقوم بيان `switch` بضرب `break` و `cc(3);` أشواط.
* تستمر هذه الدورة حتى يتم إجراء المكالمة النهائية ، `cc('A');` .
* بعد عبارة `switch` ، يتم `count` الشيك `if` كشف ، وهو الآن 0.
* هذا يسقط بعد ذلك إلى العبارة `else` ، والتي سوف تعود **0 عقد** .
**_ملاحظة_** : كما ذكرنا سابقاً ، يمكن أن يكون بيان `switch` عبارةً أخرى `else if` عبارة.
## حل رمز إضافي:
`function cc(card) {
// Only change code below this line
var regex = /[JQKA]/;
if (card > 1 && card < 7){count++;}
else if (card === 10 || String(card).match(regex)){count--;}
if (count > 0) return count + " Bet";
return count + " Hold";
// Only change code above this line
}
`
تشغيل الكود في [repl.it.](https://repl.it/@AdrianSkar/Basic-JS-Counting-cards)
### تفسير الشفرة
· وظيفة بتقييم أولا `if` شرط `card` هي قيمة أكبر من `1` وأقل من `7` ، وفي هذه الحالة فإنه بزيادة `count` تلو الآخر. · ثم إذا كانت البطاقة `10` أو أعلى هو التناقصات `count` من جانب واحد. · `regex` عبارة عن [تعبير عادي](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) يمثل القيم (الحروف) للبطاقات الأعلى. · يقوم البيان `else` بالتحقق من تلك القيم باستخدام `|| (logical OR)` مشغل `|| (logical OR)` ؛ أولاً لـ `10` ومن ثم لأي سلسلة تطابق التعبير العادي باستخدام [String.match ()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match) .
#### مصادر
* [بطاقة العد في ويكيبيديا](https://en.wikipedia.org/wiki/Card_counting)
* [التحدي: الاختيار من العديد من الخيارات مع تبديل البيانات](http://www.freecodecamp.com/challenges/selecting-from-many-options-with-switch-statements)
* [التحدي: تسلسل إذا كانت البيانات الأخرى](http://www.freecodecamp.com/challenges/chaining-if-else-statements)
* [التحدي: زيادة رقم باستخدام جافا سكريبت](http://www.freecodecamp.com/challenges/increment-a-number-with-javascript)

View File

@@ -0,0 +1,10 @@
---
title: Create Decimal Numbers with JavaScript
localeTitle: قم بإنشاء أرقام عشرية باستخدام جافا سكريبت
---
# قم بإنشاء أرقام عشرية باستخدام جافا سكريبت
يمكن أن تحتوي متغيرات رقم جافا سكريبت على أرقام عشرية.
`var myDecimal = 2.8;
`

View File

@@ -0,0 +1,24 @@
---
title: Declare JavaScript Variables
localeTitle: تحديد متغيرات جافا سكريبت
---
# تحديد متغيرات جافا سكريبت
عندما نقوم بتخزين البيانات في بنية البيانات ، فإننا نسميها متغيرًا. مكتوبة متغيرات جافا سكريبت في حالة الجمل. مثال على حالة الإبل هو: `camelCase` .
يمكنك أن تعلن عن متغير بهذه الطريقة
` var myName = "Rafael";
`
قدم ES6 طريقتين أخريين لإعلان المتغيرات. **دعونا** و **const** . _دعنا_ متشابهين إلى حد كبير مع var وفي الغالب يكون قابلاً للتبادل:
` let myAge = 36;
`
حيث _ترك_ يختلف، في نطاقه. عندما نعلن استخدام _var_ ، فهو عالمي النطاق. عندما نعلن استخدام _السماح_ ، فإن النطاق يقتصر على هذه الوظيفة. إذا كنت ترغب في استخدام متغير _السماح_ خارج إحدى الوظائف ، فيجب أن تجعله نطاقًا عالميًا أو يعيد تعريفه في الوظيفة التالية.
**const** ، من ناحية أخرى ، لا يمكن إلا أن تعلن مرة واحدة. لا يمكن أن تتغير قيمته.
` const myName = "Christina";
`

View File

@@ -0,0 +1,15 @@
---
title: Declare String Variables
localeTitle: تعبير سلسلة المتغيرات
---
## تعبير سلسلة المتغيرات
في JavaScript ، تكون المتغيرات **ديناميكية** . وهذا يعني أنه يمكنهم الاحتفاظ بالأرقام أو السلاسل أو أي نوع بيانات آخر في وقت معين. لإعلان سلسلة ، ما **عليك** سوى **تهيئة** (إنشاء) متغير:
`var a;
`
ثم ، باستخدام علامات اقتباس مفردة أو مزدوجة ، قم بتعريف السلسلة:
`a = "Hello Camper!";
`

View File

@@ -0,0 +1,12 @@
---
title: Decrement a Number with JavaScript
localeTitle: إنقاص رقم مع JavaScript
---
## إنقاص رقم مع JavaScript
قم بتقليص رقم باستخدام عامل التشغيل "-":
`var a = 5;
a--; // Now, 'a' is 4
--a; // Now, 'a' is 3
`

View File

@@ -0,0 +1,34 @@
---
title: Delete Properties from a JavaScript Object
localeTitle: حذف الخصائص من كائن JavaScript
---
## حذف الخصائص من كائن JavaScript
### تلميح: 1
* تغيير خصائص myDog باستخدام تدوين النقطة
# تحذير SPOILER: SOLUTION AHEAD
`var ourDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
"friends": ["everything!"],
"bark": "bow-wow"
};
delete ourDog.bark;
// Setup
var myDog = {
"name": "Happy Coder",
"legs": 4,
"tails": 1,
"friends": ["freeCodeCamp Campers"],
"bark": "woof"
};
// Only change code below this line.
delete myDog.tails;
`

View File

@@ -0,0 +1,10 @@
---
title: Divide One Decimal by Another with JavaScript
localeTitle: قسّم رقم عشري واحد إلى آخر باستخدام جافا سكريبت
---
# قسّم رقم عشري واحد إلى آخر باستخدام جافا سكريبت
تستخدم جافا سكريبت الرمز `/` للقسمة.
`var quotient = 0.6 / 0.3; //quotient gets the value 2
`

View File

@@ -0,0 +1,10 @@
---
title: Divide One Number by Another with JavaScript
localeTitle: قسمة رقم واحد على آخر باستخدام JavaScript
---
# قسمة رقم واحد على آخر باستخدام JavaScript
تستخدم جافا سكريبت الرمز `/` للقسمة.
`var quotient = 6 / 3; //quotient will get value 2
`

View File

@@ -0,0 +1,9 @@
---
title: Escape Sequences in Strings
localeTitle: الهروب من التسلسل في السلاسل
---
## الهروب من التسلسل في السلاسل
هذا هو كعب. [ساعد مجتمعنا على توسيعه](https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/javascript-algorithms-and-data-structures/basic-javascript/escape-sequences-in-strings/index.md) .
[سيساعدك دليل النمط السريع هذا على ضمان قبول طلب السحب](https://github.com/freecodecamp/guides/blob/master/README.md) .

View File

@@ -0,0 +1,17 @@
---
title: Escaping Literal Quotes in Strings
localeTitle: الهروب من الأسعار الحرفيه في الاوتار
---
## الهروب من الأسعار الحرفيه في الاوتار
* عندما تحتاج إلى استخدام حرف خاص مثل `"` داخل سلسلة ، يجب عليك الفرار منه باستخدام `\` .
* إذا كنت تستخدم علامات الاقتباس المزدوجة `"` للسلسلة، ونقلت واحدة `'` لا تحتاج إلى أن هرب في السلسلة.
* إذا كنت تستخدم علامات الاقتباس المفردة `'` للسلسلة ، فلا تحتاج إلى اقتباس علامات الاقتباس المزدوجة `"` في السلسلة.
## حل
`var myStr = "I am a \"double quoted\" string inside \"double quotes\".";
var otherStr = 'I am a \'single quoted\' string inside \'single quotes\'.';
var noEscapeSingle = "There is no need to 'escape' the single quotes.";
var noEscapeDouble = 'There is no need to "escape" the double quotes.';
`

View File

@@ -0,0 +1,13 @@
---
title: Find the Length of a String
localeTitle: العثور على طول سلسلة
---
## العثور على طول سلسلة
السلاسل لها **سمة** (سمة) تسمى "length". كل ما عليك فعله هو وضع علامة عليه بعد السلسلة / المتغير.
`var str1 = "Hello";
var length1 = str1.length; // This returns 5
var length2 = " Camper".length; // This returns 7 because the space is counted as one character.
`

View File

@@ -0,0 +1,10 @@
---
title: Finding a Remainder in JavaScript
localeTitle: العثور على البقية في جافا سكريبت
---
# العثور على البقية في جافا سكريبت
يعطي عامل الباقي `%` الباقي من قسم رقمين.
`var remainder = 11 % 3; //remainder gets the value 2
`

View File

@@ -0,0 +1,37 @@
---
title: Generate Random Fractions with JavaScript
localeTitle: توليد الكسور العشوائية مع جافا سكريبت
---
# توليد الكسور العشوائية مع جافا سكريبت
الأرقام العشوائية مفيدة لإنشاء سلوك عشوائي.
يحتوي JavaScript على دالة `Math.random()` التي تنشئ رقمًا عشريًا عشوائيًا بين 0 (شامل) وليس تمامًا 1 (خاص). وبالتالي يمكن `Math.random()` بإرجاع 0 ولكن أبداً إرجاع 1.
## ملحوظة
مثل تخزين القيم مع عامل التشغيل المتساوي ، سيتم حل جميع استدعاءات الدوال قبل تنفيذ عملية الإرجاع ، حتى نتمكن من إرجاع قيمة الدالة `Math.random()` .
## تعليمات
قم بتغيير randomFraction لإرجاع رقم عشوائي بدلاً من إرجاع 0.
## **تحذير !!!**
### **تنبيه المفسد!**
حل يجب اتباعه:
`function randomFraction() {
// Only change code below this line.
var result = 0;
// Math.random() can generate 0. We don't want to return a 0,
// so keep generating random numbers until we get one that isn't 0
while (result === 0) {
result = Math.random();
}
return result;
// Only change code above this line.
}
`

View File

@@ -0,0 +1,9 @@
---
title: Generate Random Whole Numbers with JavaScript
localeTitle: توليد أرقام كاملة عشوائية مع جافا سكريبت
---
## توليد أرقام كاملة عشوائية مع جافا سكريبت
هذا هو كعب. [ساعد مجتمعنا على توسيعه](https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/javascript-algorithms-and-data-structures/basic-javascript/generate-random-whole-numbers-with-javascript/index.md) .
[سيساعدك دليل النمط السريع هذا على ضمان قبول طلب السحب](https://github.com/freecodecamp/guides/blob/master/README.md) .

View File

@@ -0,0 +1,9 @@
---
title: Generate Random Whole Numbers within a Range
localeTitle: توليد أرقام كاملة عشوائية داخل نطاق
---
## توليد أرقام كاملة عشوائية داخل نطاق
**مساعدة لاجتياز الاختبار النهائي:** _`randomRange` يجب استخدام كل `myMax` و `myMin` ، وإرجاع رقم عشوائي في النطاق الخاص بك._
لا يمكنك اجتياز الاختبار النهائي إذا كنت تقوم فقط بإعادة استخدام الدالة `ourRandomRange` داخل صيغة `randomRange` الخاصة بك. تحتاج إلى كتابة الصيغة الخاصة بك التي تستخدم المتغيرات `myMax` و `myMin` . سوف يقوم بالمهمة نفسها مثل استخدام `ourRandomRange` ، ولكن يضمن أنك قد فهمت مبادئ `Math.floor()` و `Math.random()` .

View File

@@ -0,0 +1,58 @@
---
title: Global Scope and Functions
localeTitle: النطاق العالمي والوظائف
---
## النطاق العالمي والوظائف
نطاق المتغير هو ظهوره. حيث في الرمز هي الوظيفة المتاحة؟ فيما يلي قائمة بالنطاقات المختلفة التي يمكن أن يحصل عليها المتغير.
* **النطاق العالمي** : المتغير متاح في جميع أنحاء الكود
* **النطاق المحلي** : متوفر في منطقة معينة فقط (على سبيل المثال فقط داخل الوظيفة)
* **نطاق الحظر** : متاح داخل منطقة _أكثر_ تحديدًا (مثل if-statement)
مهمتك هي فهم كيفية إضافة `var` (وليس إضافة) قبل اسم المتغير ، يمكن تغيير نطاق المتغير.
عند إضافة `var` قبل اسم المتغير ، يتم تحديد نطاقه حسب مكان وضعه. مثل ذلك:
`var num1 = 18; // Global scope
function fun() {
var num2 = 20; // Local (Function) Scope
if (true) {
var num3 = 22; // Block Scope (within an if-statement)
}
}
`
عندما لا تفعل ، هذه هي النتيجة:
`num1 = 18; // Global scope
function fun() {
num2 = 20; // Global Scope
if (true) {
num3 = 22; // Global Scope
}
}
`
حسنًا ، إليك حل الشفرة الأساسية.
`// Declare your variable here
var myGlobal = 10;
function fun1() {
oopsGlobal = 5;
}
// Only change code above this line
function fun2() {
var output = "";
if (typeof myGlobal != "undefined") {
output += "myGlobal: " + myGlobal;
}
if (typeof oopsGlobal != "undefined") {
output += " oopsGlobal: " + oopsGlobal;
}
console.log(output);
}
`

View File

@@ -0,0 +1,21 @@
---
title: Global vs. Local Scope in Functions
localeTitle: نطاق عالمي مقابل نطاق محلي في الوظائف
---
## نطاق عالمي مقابل نطاق محلي في الوظائف
تذكر أن النطاق العالمي يعني أن المتغير متاح طوال الشفرة بأكملها. النطاق المحلي ، يعني أن المتغير متاح ضمن نطاق معين.
في هذا التمرين ، يكون لديك متغير `outerWear` في النطاق العالمي باستخدام "T-shirt" باعتباره قيمته. يجب عليك الآن إنشاء متغير آخر يسمى `outerWear` ، ولكن هذه المرة داخل الدالة `myOutfit()` . الحل الأساسي رمز كما يلي:
`var outerWear = "T-shirt";
function myOutfit() {
var outerWear = "sweater";
return outerWear;
}
myOutfit();
`
ستقوم الدالة بإرجاع أقرب `outerWear` يمكن العثور عليه. منذ أن أنشأنا `outerWear` داخل الدالة ، وهذا هو "الأقرب" ، وبالتالي فإن الدالة ستعود "سترة".

View File

@@ -0,0 +1,124 @@
---
title: Golf Code
localeTitle: كود الجولف
---
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": triangular_flag_on_post:") تذكر استخدام **`Read-Search-Ask`** إذا واجهتك مشكلة. حاول إقران البرنامج ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": busts_in_silhouette:") واكتب الكود الخاص بك ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":قلم:")
### ![:checkered_flag:](https://forum.freecodecamp.com/images/emoji/emoji_one/checkered_flag.png?v=3 ":العلم متقلب:") شرح المشكلة:
في لعبة الجولف كل حفرة لها قيمة **اسمية** تعني متوسط ​​عدد **ضربات** لاعب الجولف من المتوقع أن تغرق الكرة في حفرة لاستكمال اللعب. اعتمادا على مدى أعلى أو أقل من **السعر الأصلي** **السكتات الدماغية** الخاصة بك، وهناك لقب آخر.
سيتم تمرير الدالة **قدم المساواة** **والسكتات الدماغية** الحجج. يجب عليك إرجاع السلسلة الصحيحة وفقًا لهذا الجدول الذي يسرد الحدود بترتيب الأولوية؛ أعلى (أعلى) إلى أسفل (أدنى):
السكتات الدماغية إرجاع
: --------- | : -------------
1 | "حفرة واحدة!"
<= par - 2 | "نسر"
par - 1 | "بيردي"
par | "الاسمية"
par + 1 | "شبح"
par + 2 | "بوجيه مزدوج" > = par + 3 | "اذهب للمنزل!"
سوف يكون **الاسمية** **والسكتات الدماغية** دومًا رقمية وإيجابية.
* تغيير الرمز أدناه `// Only change code below this line` وما فوق `// Only change code above this line` .
* تأكد من أنك تقوم بتحرير داخل وظيفة `golfScore` .
* سيكون عليك جعل الدالة تقوم بإرجاع نفس السلسلة بالضبط كما هو موضح في الجدول ، بناءً على قيمة المعلمات **par** **والحدود** التي يتم تمريرها إلى وظيفتك.
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 1
`+number -number` يمكن استخدامه لزيادة أو تقليل معلمة في حالتك.
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 2
يمكنك استخدام `if / else if` سلاسل لإرجاع قيم مختلفة في سيناريوهات مختلفة.
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 3
تحكم في تدفق الدالة بناءً على ترتيب الجداول للأولوية - أعلى (أعلى) إلى أسفل (أدنى) لإرجاع قيم السلسلة المطابقة.
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
![علامة تحذير](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**الحل في المستقبل!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ":مبتدئ:") الحل الأساسي للكود:
`function golfScore(par, strokes) {
// Only change code below this line
if (strokes == 1){
return "Hole-in-one!";
} else if (strokes <= par -2){
return "Eagle";
} else if (strokes == par -1) {
return "Birdie";
} else if (strokes == par) {
return "Par";
} else if (strokes == par +1) {
return "Bogey";
} else if (strokes == par +2) {
return "Double Bogey";
} else {
return "Go Home!";
}
// Only change code above this line
}
// Change these values to test
golfScore(5, 4);
`
### شرح الشفرة:
* مقارنة **قدم المساواة** المعلمات **والسكتات الدماغية** لإرجاع القيم السلسلة المناسبة.
* `if / else if` تم استخدام سلسلة للتحكم في التدفق.
* السلسلة "Go Home!" يتم إرجاعها لكل حالة تكون فيها **الحدود** أكبر من أو تساوي **par + 3** .
## حل رمز بديل:
`var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
function golfScore(par, strokes) {
// Only change code below this line
if (strokes == 1){
return names[0];
}
else if (strokes <= par-2){
return names[1];
}
else if (strokes == par -1){
return names[2];
}
else if (strokes == par){
return names[3];
}
else if (strokes == par +1){
return names[4];
}
else if (strokes == par +2){
return names[5];
}
else {return names[6];}
// Only change code above this line
}
// Change these values to test
golfScore(5, 4);
`
· تشغيل في [repl.it](https://repl.it/@AdrianSkar/Basic-JS-Golf-code)
\## شرح الكود نظرًا لأن لدينا بالفعل صفيفًا محددًا في `names` المتغيرات ، فيمكننا الاستفادة منه واستخدامه في عبارات الإرجاع باستخدام الفهارس (على سبيل المثال: `names[0] is the first one` ). بهذه الطريقة ، إذا احتجت في أي وقت إلى تغيير نتيجة معينة فلن تحتاج إلى البحث عنها داخل الوظيفة ، فستكون في البداية ، في الصفيف الخاص بك.
### مصادر
* [جولف](https://en.wikipedia.org/wiki/Golf)
* [التحدي: تسلسل إذا كانت البيانات الأخرى](http://www.freecodecamp.com/challenges/chaining-if-else-statements)
* [التحدي: مقارنة مع أكبر من المساواة إلى المشغل](http://www.freecodecamp.com/challenges/comparison-with-the-greater-than-equal-to-operator)
* [التحدي: مقارنة مع أقل من المساواة في المشغل](http://www.freecodecamp.com/challenges/comparison-with-the-less-than-equal-to-operator)
* ["Array" - _مرجع JavaScript الخاص بـ MDN_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)

View File

@@ -0,0 +1,12 @@
---
title: Increment a Number with JavaScript
localeTitle: زيادة رقم باستخدام JavaScript
---
## زيادة رقم باستخدام JavaScript
يمكنك بسهولة زيادة (إضافة واحد) إلى متغير أرقام باستخدام عامل الزيادة "++". فمثلا:
`var a = 6;
a++; // Now, 'a' is equal to 7 -- post-fixing
++a; // Now, 'a' is equal to 8 -- pre-fixing
`

View File

@@ -0,0 +1,11 @@
---
title: Basic Javascript
localeTitle: جافا سكريبت الأساسي
---
## جافا سكريبت الأساسي
هذا هو كعب. [ساعد مجتمعنا على توسيعه](https://github.com/freecodecamp/guides/tree/master/src/pages/mathematics/quadratic-equations/index.md) .
[سيساعدك دليل النمط السريع هذا على ضمان قبول طلب السحب](https://github.com/freecodecamp/guides/blob/master/README.md) .
#### معلومات اكثر:

View File

@@ -0,0 +1,10 @@
---
title: Initializing Variables with the Assignment Operator
localeTitle: تهيئة المتغيرات مع مشغل الإحالة
---
## تهيئة المتغيرات مع مشغل الإحالة
**لتهيئة** متغير هو إعطاءه قيمة أولية. يمكنك الإعلان وتهيئة متغير مثل:
`var num = 5; // This is equal to 5
`

View File

@@ -0,0 +1,61 @@
---
title: Introducing Else If statements
localeTitle: إدخال آخر إذا البيانات
---
## إدخال آخر إذا البيانات
تذكر استخدام Read-Search-Ask إذا واجهتك مشكلة. حاول إقران البرنامج وكتابة التعليمات البرمجية الخاصة بك.
\### شرح المشكلة:
`function testElseIf(val) {
if (val > 10) {
return "Greater than 10";
}
if (val < 5) {
return "Smaller than 5";
}
return "Between 5 and 10";
}
// Change this value to test
testElseIf(7);
`
سنقوم بتعديل الشفرة الموجودة أعلاه بحيث تتبع تدفق المنطق الذي **يتضمنه** بيان آخر.
\### تلميح: 1 `javascript if (val > 10) { return "Greater than 10"; }` كل ما `if` العبارات ومختلف المتغيرات تبدأ ببيان `if` .
> اول أن تحل المشكلة الآن_
\### تلميح: 2 `javascript else if (val < 5) { return "Smaller than 5"; }` التصريحات بين `if` البيان و `else` بيان في **آخر، إذا** تدفق هم في آخر اذا شكل
> اول أن تحل المشكلة الآن_
\### تلميح: 3 `javascript else { return "Between 5 and 10"; }` البيان الأخير في **آخر اذا** التدفق في `else` شكل ### تنبيه المفسد! ![المفسد](http://discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif) الحل في المستقبل! ## حل الرمز الأساسي:
`function testElseIf(val) {
if (val > 10) {
return "Greater than 10";
}
else if (val < 5) {
return "Smaller than 5";
}
else {
return "Between 5 and 10";
}
}
// Change this value to test
testElseIf(7);
`
: صاروخ: [تشغيل الكود](https://repl.it/@RyanPisuena/GoldenWorriedRuntime) ## شرح الكود بنية **آخر، إذا تدفق المنطق** هو أولي `if` البيان، أكثر واحد `if-else` التصريحات، ونهائي واحد `else` بيان.
### مصادر
* ["if… else" - _MDN JavaScript reference_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if…else)

View File

@@ -0,0 +1,57 @@
---
title: Introducing Else statements
localeTitle: إدخال بيانات أخرى
---
## إدخال بيانات أخرى
### شرح المشكلة:
· _ضم البيانات `if` في عبارة واحدة `if/else` ._
#### تلميح 1
عند إرجاع العبارة `if` الجملة `false` ، يتم تنفيذ / تقييم التعليمة البرمجية التالية (مثل `return` ، أو `if` `else` عبارات أخرى).
> اول أن تحل المشكلة الآن_
#### تلميح 2
في بعض الأحيان ، `if` الممكن استبدال عبارات ( `condition` ) بـ `else {code to execute instead}` عبارات (في جوهرها ، فإنك تخبر وظيفتك أن تفعل _"y"_ إذا لم تستطع _"x"_ بدلاً من تحديد _"x"_ عدة مرات).
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
**الحل في المستقبل!**
## حل الرمز الأساسي:
`function testElse(val) {
var result = "";
// Only change code below this line
if (val > 5) {
result = "Bigger than 5";
}
else {
result = "5 or smaller";
}
// Only change code above this line
return result;
}
// Change this value to test
testElse(4);
`
[تشغيل الكود في repl.it](https://repl.it/@AdrianSkar/Introducing-else-statements)
### تفسير الشفرة
تقوم الدالة أولاً بتقييم `if` تقييم الحالة `val > 5` إلى `true` . إذا لم يحدث ذلك ، فإنه ينفذ العبارة التالية ( `else { return "5 or smaller";})` .
### مصادر
* ["if… else" - _MDN JavaScript reference_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if…else)

View File

@@ -0,0 +1,37 @@
---
title: Iterate Odd Numbers With a For Loop
localeTitle: تكرار الأرقام الفردية مع ل حلقة
---
## تكرار الأرقام الفردية مع ل حلقة
هنا هو المثال:
`var ourArray = [];
for (var i = 0; i < 10; i += 2) {
ourArray.push(i);
}
// Setup
var myArray = [];
// Only change code below this line.
`
وإليك الحل: بعد السلسلة `// Only change code below this line.` نضيف `for` حلقة. تحتاج إلى نسخ حلقة من الجزء العلوي:
`javascript for (var i = 0; i < 10; i += 2) { ourArray.push(i); }` وتغيير `initialization` `var i = 0` إلى `var i = 1` ، كما تحتاج إلى تغيير اسم المصفوفة `ourArray` إلى `myArray` :
`javascript for (var i = 1; i < 10; i += 2) { myArray.push(i); }`
وإليك الحل الكامل:
\`\` \`جافا سكريبت var ourArray = \[\]؛
لـ (var i = 0؛ i <10؛ i + = 2) { ourArray.push (ط }
// اقامة var myArray = \[\]؛
// فقط تغيير رمز أدناه هذا الخط.
لـ (var i = i <10؛ i + = 2) { myArray.push (ط } \`\` \`

View File

@@ -0,0 +1,9 @@
---
title: Iterate Through an Array with a For Loop
localeTitle: تكرار عبر صفيف مع ل حلقة
---
## تكرار عبر صفيف مع ل حلقة
هذا هو كعب. [ساعد مجتمعنا على توسيعه](https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/javascript-algorithms-and-data-structures/basic-javascript/iterate-through-an-array-with-a-for-loop/index.md) .
[سيساعدك دليل النمط السريع هذا على ضمان قبول طلب السحب](https://github.com/freecodecamp/guides/blob/master/README.md) .

View File

@@ -0,0 +1,18 @@
---
title: Iterate with JavaScript Do...While Loops
localeTitle: تكرار مع JavaScript Do ... While Loops
---
## تكرار مع JavaScript Do… While Loops
* `Do...While` الحلقات بالتأكد من تنفيذ الشفرة مرة واحدة على الأقل ، وبعد التنفيذ ، إذا كان الشرط الموجود داخل `while()` **صحيحًا** ، فإنه يستمر بالحلقة ، وإلا فإنه يتوقف.
## حل
`var myArray = [];
var i = 10;
do {
myArray.push(i);
i++;
} while(i <= 10);
`

View File

@@ -0,0 +1,9 @@
---
title: Iterate with JavaScript For Loops
localeTitle: تكرار مع JavaScript For Loops
---
## تكرار مع JavaScript For Loops
هذا هو كعب. [ساعد مجتمعنا على توسيعه](https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/javascript-algorithms-and-data-structures/basic-javascript/iterate-with-javascript-for-loops/index.md) .
[سيساعدك دليل النمط السريع هذا على ضمان قبول طلب السحب](https://github.com/freecodecamp/guides/blob/master/README.md) .

View File

@@ -0,0 +1,36 @@
---
title: Iterate with JavaScript While Loops
localeTitle: تكررت مع جافا سكريبت في حين الحلقات
---
## تكررت مع جافا سكريبت في حين الحلقات
بينما سيتم تشغيل حلقات طالما أن الشرط الموجود داخل () صحيح. مثال:
`while(condition){
code...
}
`
## تلميح 1:
استخدم متغير مكرر مثل i في حالتك
`var i = 0;
while(i <= 4){
}
`
## Spoiler Alert Solution إلى الأمام!
## حل:
`// Setup
var myArray = [];
// Only change code below this line.
var i = 0;
while (i <= 4){
myArray.push(i);
i++;
}
`

View File

@@ -0,0 +1,18 @@
---
title: Local Scope and Functions
localeTitle: النطاق المحلي والوظائف
---
## النطاق المحلي والوظائف
النطاق المحلي يعني أن المتغير متاح داخل منطقة معينة. في حالة هذا التمرين ، لا يتوفر `myVar` إلا داخل الوظيفة ، وليس في أي مكان بالخارج.
فيما يلي الحل الأساسي للتعليمات البرمجية لإنشاء متغير `myVar` محلي.
`function myLocalScope() {
var myVar;
console.log(myVar);
}
myLocalScope();
`
المتغير موجود فقط في الوظيفة. خارج الوظيفة ، هو غير موجود.

View File

@@ -0,0 +1,9 @@
---
title: Logical Order in If Else Statements
localeTitle: ترتيب منطقي في حال وجود بيانات أخرى
---
## ترتيب منطقي في حال وجود بيانات أخرى
هذا هو كعب. [ساعد مجتمعنا على توسيعه](https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/javascript-algorithms-and-data-structures/basic-javascript/logical-order-in-if-else-statements/index.md) .
[سيساعدك دليل النمط السريع هذا على ضمان قبول طلب السحب](https://github.com/freecodecamp/guides/blob/master/README.md) .

View File

@@ -0,0 +1,24 @@
---
title: Manipulate Arrays With pop()
localeTitle: التعامل مع صفائف مع البوب ()
---
## التعامل مع صفائف مع البوب ()
## شرح المشكلة
تخلص من العنصر الأخير في المصفوفة. ثم ، قم بتعيين هذا العنصر `removedFromMyArray` إلى `removedFromMyArray` .
## تلميح 1:
استدعاء `.pop()` على الصفيف ، وتعيينه إلى `removedFromMyArray` .
## المفسد! حل الرمز:
`var removedFromMyArray = myArray.pop();
=======
Remove the last element of an array with the pop() method, like so:
`
جافا سكريبت var arr = \[1، 2، 3، 4، 5\]؛ arr.pop ()؛ // هذا تخلص من 5
\`\` \`

View File

@@ -0,0 +1,11 @@
---
title: Manipulate Arrays With push()
localeTitle: التعامل مع صفائف بدفع ()
---
## التعامل مع صفائف بدفع ()
تسمح لك طريقة `push()` بإلحاق (إضافة إلى النهاية) عنصر إلى مصفوفة. مثل ذلك…
`var arr = [1, 2, 3, 4];
arr.push(5); // Now, the array is [1, 2, 3, 4, 5]
`

View File

@@ -0,0 +1,11 @@
---
title: Manipulate Arrays With shift()
localeTitle: التعامل مع صفائف مع shift ()
---
## التعامل مع صفائف مع shift ()
بينما تم استخدام `pop()` للتخلص من العنصر الأخير من صفيف ، يتم استخدام `shift()` للتخلص من العنصر الأول. إنها تشبه أنك تقوم بتحويل العناصر إلى موضع واحد. تحقق من هذا:
`var arr = [1, 2, 3, 4, 5];
arr.shift(); // Gets rid of the 1
`

View File

@@ -0,0 +1,11 @@
---
title: Manipulate Arrays With unshift()
localeTitle: معالجة صفائف مع unshift ()
---
## معالجة صفائف مع unshift ()
بينما `push()` إضافة عناصر إلى الجزء الخلفي من المصفوفة ، يضيف `unshift()` إلى الأمام. كل ما عليك القيام به هو:
`var arr = [2, 3, 4, 5];
arr.unshift(1); // Now, the array has 1 in the front
`

View File

@@ -0,0 +1,67 @@
---
title: Manipulating Complex Objects
localeTitle: معالجة الكائنات المعقدة
---
## معالجة الكائنات المعقدة
هنا هو المثال:
`var myMusic = [
{
"artist": "Billy Joel",
"title": "Piano Man",
"release_year": 1973,
"formats": [
"CD",
"8T",
"LP"
],
"gold": true
}
// Add record here
];
`
وإليك الحل: بعد السلسلة `// Add record here` نقوم بإضافة ألبوم جديد إلى `myMusic` . أنت في حاجة للبدء من `,` . ويمكنك فقط نسخ ألبوم تم إنشاؤه بالفعل: `javascript { "artist": "Billy Joel", "title": "Piano Man", "release_year": 1973, "formats": [ "CD", "8T", "LP" ], "gold": true }`
ولصق بعد `,` :
` // Add record here
,
{
"artist": "Billy Joel",
"title": "Piano Man",
"release_year": 1973,
"formats": [
"CD",
"8T",
"LP"
],
"gold": true
}
];
`
الآن ، يمكنك تغيير قيم ألبومك:
` // Add record here
,
{
"artist": "Deep Purple",
"title": "Smoke on the water",
"release_year": 1976,
"formats": [
"CD",
"8T",
"LP"
],
"gold": true
}
];
`
وإليك الحل الكامل:
\`\` \`جافا سكريبت var myMusic = \[ { "الفنان": "بيلي جويل" ، "title": "Piano Man" ، " _سنة_ الإصدار _": 1973 ، "التنسيقات": \[ "CD"، "8T" "LP" \]، "الذهب": صحيح }، // أضف سجل هنا { "الفنان": "Deep Purple" ، "العنوان": "دخان على الماء" ، "_ سنة _الإصدار_ ": 1976 ، "التنسيقات": \[ "CD"، "8T" "LP" \]، } \].
\`\` \`

View File

@@ -0,0 +1,15 @@
---
title: Modify Array Data With Indexes
localeTitle: تعديل صفيف البيانات مع فهارس
---
## تعديل صفيف البيانات مع فهارس
الوصول إلى موضع الصفيف ، وتغييره ، مثل:
`var arr = [1, 2, 3, 4, 5];
arr[0] = 6; // Now, the array is [6, 2, 3, 4, 5]
arr[4] = 10 // Now, the array is [6, 2, 3, 4, 10]
`
المفهوم المهم هنا هو أن المصفوفات **قابلة للتغيير** . هذا يعني أنه يمكن تغييرها بسهولة.

View File

@@ -0,0 +1,93 @@
---
title: Multiple Identical Options in Switch Statements
localeTitle: خيارات متعددة مماثلة في بيانات التبديل
---
## خيارات متعددة مماثلة في بيانات التبديل
### شرح المشكلة
_إذا تم حذف بيان الفاصل من حالة عبارة التبديل ، يتم تنفيذ العبارة (الحالات) التالية إلى أن تتم مصادفة فاصل. إذا كان لديك مدخلات متعددة بنفس المخرجات ، فيمكنك تمثيلها في بيان تبديل مثل هذا:_
`switch(val) {
case 1:
case 2:
case 3:
result = "1, 2, or 3";
break;
case 4:
result = "4 alone";
}
`
_الحالات 1 و 2 و 3 ستنتج نفس النتيجة._
_اكتب عبارة تبديل لتعيين الإجابة للنطاقات التالية:_ `1-3` - "منخفض"
`4-6` - "منتصف"
`7-9` - "عالية"
_ملحوظة: ستحتاج إلى بيان حالة لكل رقم في النطاق._
## تنبيه المفسد!
**الحل في المستقبل!**
## حل الرمز:
`function sequentialSizes(val) {
var answer = "";
// Only change code below this line
switch(val) {
case 1:
case 2:
case 3:
return "Low";
break;
case 4:
case 5:
case 6:
return "Mid";
break;
case 7:
case 8:
case 9:
return "High";
break;
}
// Only change code above this line
return answer;
}
// Change this value to test
sequentialSizes(1);
`
## حل رمز بديل:
`function sequentialSizes(val) {
var answer = "";
// Only change code below this line
switch(val){
case 1: case 2: case 3:
answer = "Low";
break;
case 4: case 5: case 6:
answer = "Mid";
break;
case 7: case 8: case 9:
answer = "High";
}
// Only change code above this line
return answer;
}
// Change this value to test
sequentialSizes(1);
`
تشغيل الكود في [repl.it.](https://repl.it/@AdrianSkar/Basic-JS-Multiple-opts-in-switch)
### تفسير الشفرة
نظرًا لأن لديك بالفعل متغيرًا مسمى `answer` المحددة وتقوم الدالة بإرجاعه ، فيمكنك فقط تعديل قيمته على كل مجموعة من عبارات الحالة لتتوافق مع متطلبات التمرين.
### مصادر
* ["التبديل: طرق للحالة متعددة المعايير" - _مرجع Javascript لـ MDN_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch)

View File

@@ -0,0 +1,9 @@
---
title: Multiply Two Decimals with JavaScript
localeTitle: ضرب اثنين من الكسور العشرية مع جافا سكريبت
---
## ضرب اثنين من الكسور العشرية مع جافا سكريبت
هذا هو كعب. [ساعد مجتمعنا على توسيعه](https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/javascript-algorithms-and-data-structures/basic-javascript/multiply-two-decimals-with-javascript/index.md) .
[سيساعدك دليل النمط السريع هذا على ضمان قبول طلب السحب](https://github.com/freecodecamp/guides/blob/master/README.md) .

View File

@@ -0,0 +1,10 @@
---
title: Multiply Two Numbers with JavaScript
localeTitle: اضرب رقمين مع جافا سكريبت
---
# اضرب رقمين مع جافا سكريبت
تستخدم JavaScript الرمز `*` للضرب.
`var product = 8 * 10; //product gets the value 80
`

View File

@@ -0,0 +1,12 @@
---
title: Nest one Array within Another Array
localeTitle: عش صف واحد داخل صفيف آخر
---
## عش صف واحد داخل صفيف آخر
المصفوفات هي أحادية البعد؛ هذا يعني أنه يتم تخزين صف واحد فقط من البيانات. ولكن يمكنك إنشاء صفيف متعدد الأبعاد عن طريق وضع المصفوفات داخل المصفوفات! مثل ذلك:
`var arr = [["Two-dimensional", 2], ["Two rows", 12]];
`
الصفيف أعلاه له بعدان.

View File

@@ -0,0 +1,91 @@
---
title: Nesting For Loops
localeTitle: التعشيش للحلقات
---
## التعشيش للحلقات
**تذكر استخدام Read-Search-Ask إذا واجهتك مشكلة. محاولة إقران البرنامج: التمثال النصفي _في_ صورة ظلية: وكتابة الرمز الخاص بك: قلم رصاص:**
: checkered\_flag: **مشكلة التفسير:**
إذا كان لديك صفيف متعدد الأبعاد ، فيمكنك استخدام نفس المنطق الذي تستخدمه نقطة الاتصال السابقة لتكرار الحلقات من خلال الصفيف وأية صفيف فرعي.
هنا مثال:
`var arr = [
[1,2], [3,4], [5,6]
];
for (var i=0; i < arr.length; i++) {
for (var j=0; j < arr[i].length; j++) {
console.log(arr[i][j]);
}
}
`
هذا إخراج كل عنصر فرعي في `arr` واحد في كل مرة. لاحظ أنه بالنسبة للحلقة الداخلية ، فإننا نتحقق من طول arr \[i\] ، لأن arr \[i\] هو نفسه مصفوفة.
* تعديل الدالة `multiplyAll` بحيث تضاعف متغير `product` قبل كل رقم في sub-arrays of `arr` .
* تأكد من تداخل الثانية للحلقة داخل الأول.
**روابط ذات صلة**
* [عش صف واحد داخل صفيف آخر](https://guide.freecodecamp.org/certifications/javascript-algorithms-and-data-structures/basic-javascript/nest-one-array-within-another-array)
* [تكررت من خلال صفيف مع ل حلقة](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/iterate-through-an-array-with-a-for-loop)
* [الوصول إلى صفائف متداخلة](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/accessing-nested-arrays)
: speech\_balloon: تلميح: 1
تأكد من التحقق مع `length` وليس الصفيف العام.
اول أن تحل المشكلة الآن_
: speech\_balloon: تلميح 2
استخدم كل من `i` و `j` عند ضرب المنتج.
اول أن تحل المشكلة الآن_
: speech\_balloon: تلميح 3
تذكر استخدام `arr[i]` عند ضرب المصفوفات الفرعية بمتغير `product` .
اول أن تحل المشكلة الآن_
_تنبيه المفسد!_ ![](https://discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**الحل قبل**
: مبتدئ: **حل الرمز الأساسي:**
`function multiplyAll(arr) {
var product = 1;
// Only change code below this line
for(var i=0; i < arr.length; i++){
for (var j=0; j < arr[i].length; j++){
product = product * arr[i][j];
}
}
// Only change code above this line
return product;
}
// Modify values below to test your code
multiplyAll([[1,2],[3,4],[5,6,7]]);
`
: صاروخ: **[تشغيل التعليمات البرمجية](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/nesting-for-loops/)**
**شرح الشفرة:**
* نتحقق من طول `arr` في `i` for loop و `arr[i]` length في الحلقة `j` for loop.
* نضرب متغير `product` حد ذاته لأنه يساوي 1 ، ومن ثم نضربه بواسطة المصفوفات الفرعية.
* والصفحتان الفرعيتان `arr[i]` هما `arr[i]` و `j` .
: الحافظة: **ملاحظات للمساهمات:**
* : تحذير: **لا تقم** بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
* أضف شرحًا لحلك.
* تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط ​​والمتقدم. : traffic\_light:
* الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة. (: تحذير: _**لا تقم**_ بإزالة أي أسماء مستخدمين موجودة)
انظر: point\_right: [Wiki Challenge Solution Template](http://forum.freecodecamp.com/t/algorithm-article-template/14272) كمرجع.

View File

@@ -0,0 +1,18 @@
---
title: Passing Values to Functions with Arguments
localeTitle: تمرير القيم إلى دالات مع الوسيطات
---
## تمرير القيم إلى دالات مع الوسيطات
مهمتنا هي إنشاء وظيفة لديها **معلمات** . هذه هي المدخلات التي تحدد إخراج الدالة. تضع المتابعين داخل `()` ، مثل:
`function functionWithArgs(one, two) {
console.log(one + two);
}
`
لدينا الآن لإضافة رمز داخل الأقواس. مهمتنا هي إضافة `one` `two` ، وطباعة المجموع إلى وحدة التحكم. هنا هو الحل الأساسي رمز:
`functionWithArgs(7, 3);
//This will console log 10.
`

View File

@@ -0,0 +1,45 @@
---
title: Practice comparing different values
localeTitle: ممارسة مقارنة قيم مختلفة
---
## ممارسة مقارنة قيم مختلفة
### شرح المشكلة:
_تعديل الوظيفة بحيث ترجع "المساواة" فقط عندما تكون القيم متساوية **تماما** ._
#### تلميح 1
تذكر من التدريبات الأخيرة أنه _بخلاف مشغل المساواة ، الذي يحاول تحويل كلتا القيمتين مقارنة بالنوع الشائع ، فإن مشغل المساواة الصارم لا يقوم بتحويل نوع._ [1](#cite1)
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
**الحل في المستقبل!**
## حل الرمز الأساسي:
`// Setup
function compareEquality(a, b) {
if (a === b) { // Change this line
return "Equal";
}
return "Not Equal";
}
// Change this value to test
compareEquality(10, "10");
`
### تفسير الشفرة
تقوم الدالة أولاً بتقييم `if` الشرط `(a === b)` تقييمه إلى الحالة `true` نظرًا إلى كل من النوع والقيمة. إذا كان كذلك ، فإنها ترجع العبارة بين الأقواس المتعرجة ("مساواة"). إذا لم يكن الأمر كذلك ، فإنه يُرجع بيان `return` التالي خارجها ("لا يساوي").
### مصادر
1 . ["جافا سكريبت الأساسي: مقارنة مع مشغل المساواة الصارمة" ، درس لجنة الاتصالات الفيدرالية في _خوارزميات جافا سكريبت وشهادات البيانات_](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/comparison-with-the-strict-equality-operator)
### مصادر
* ["استخدام عوامل التشغيل _المتساوية_ " - _مرجع JavaScript الخاص بـ MDN_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Using_the_Equality_Operators)

View File

@@ -0,0 +1,96 @@
---
title: Profile Lookup
localeTitle: بحث الملف الشخصي
---
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": triangular_flag_on_post:") تذكر استخدام **`Read-Search-Ask`** إذا واجهتك مشكلة. حاول إقران البرنامج ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": busts_in_silhouette:") واكتب الكود الخاص بك ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":قلم:")
### ![:checkered_flag:](https://forum.freecodecamp.com/images/emoji/emoji_one/checkered_flag.png?v=3 ":العلم متقلب:") شرح المشكلة:
لدينا مجموعة من الكائنات التي تمثل أشخاصًا مختلفين في قوائم جهات الاتصال الخاصة بنا.
`lookUpProfile()` التي تأخذ **الاسم الأول** و خاصية ( **prop** ) **كوسائط** قد تمت كتابتها مسبقًا نيابة عنك.
يجب التحقق من الوظيفة إذا كان **الاسم الأول** هو **الاسم الأول** جهة اتصال الفعلي وممتلكات معينة **(دعم)** هو خاصية من هذا الاسم.
إذا كان كلاهما صحيحًا ، فأعد _قيمة_ هذه الخاصية.
إذا كان **الاسم الأول** لا يتوافق مع أي جهات اتصال ، فعندئذ `No such contact` ترجع `No such contact` .
إذا كان **البروب** لا يتوافق مع أي خصائص صالحة ، فعندئذ `No such property` ترجع `No such property` .
* تغيير الرمز أدناه `// Only change code below this line` وحتى `// Only change code above this line` .
* تأكد من أنك تقوم بتحرير داخل وظيفة `lookUpProfile()` .
* تتضمن هذه الوظيفة معلمتين ، **firstName** و **prop** .
* يجب أن تبحث الدالة من خلال قائمة **جهات الاتصال** لمعلمة **firstName** المحددة.
* في حالة وجود تطابق موجود ، يجب أن تبحث الدالة عن معلمة **prop** المقدمة.
* إذا تم **العثور على** كل من **firstName** و **prop** المقترن ، يجب عليك إرجاع قيمة **prop** .
* إذا تم العثور على **firstName ولم** يتم العثور على **دعم** مقترن ، يجب عليك إرجاع `No such property` .
* إذا لم يتم العثور على **الاسم الأول** في أي مكان، يجب أن تعيد `No such contact` .
#### روابط ذات صلة
* [التحدي: الوصول إلى خصائص الكائنات مع تدرج قوس](http://www.freecodecamp.com/challenges/accessing-objects-properties-with-bracket-notation)
* [التحدي: تكرار مع JavaScript For Loops](http://www.freecodecamp.com/challenges/iterate-with-javascript-for-loops)
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 1
استخدم حلقة `for` للتنقل بين قائمة **جهات الاتصال** .
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 2
استخدام متداخلة `if` تصريح لالاختيار أولا إذا يطابق **الاسم الأول،** ومن ثم يتحقق `if` المباريات **دعامة.**
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 3
ترك لكم `return "No such contact"` من `for` حلقة كما التقاط كل النهائي.
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
![علامة تحذير](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**الحل في المستقبل!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ":مبتدئ:") الحل الأساسي للكود:
`for (var x = 0; x < contacts.length; x++){
if (contacts[x].firstName === name) {
if (contacts[x].hasOwnProperty(prop)) {
return contacts[x][prop];
} else {
return "No such property";
}
}
}
return "No such contact";
`
### شرح الشفرة:
* و `for` حلقة يدير، ابتداء من الساعة الكائن الأول في قائمة **الأسماء.**
* إذا **تطابق** المعلمة **firstName** تمريرها في الدالة قيمة المفتاح `"firstName"` في الكائن الأول ، تمرير عبارة `if` .
* ثم ، نستخدم `.hasOwnProperty()` طريقة (يتحقق إذا كان هناك خاصية معينة وترجع قيمة منطقية) **بالدعم** كوسيطة. إذا كان صحيحًا ، يتم إرجاع قيمة **الداعم** .
* في `if` فشل العبارة الثانية في `if` عدم إرجاع `No such property` .
* في `if` فشل العبارة الأولى في `if` استمرار حلقة `for` إلى الكائن التالي في قائمة **جهات الاتصال** .
* إذا لم تطابق المعلمة **الاسم الأول** من قبل **الاتصالات** النهائية الاعتراض، و `for` مخارج حلقة و `No such contact` يتم إرجاعها.
**مثال تشغيل**
* `lookUpProfile("Akira","likes");` أشواط.
* تتم مطابقة `"Akira"` مع المفتاح `"firstName"` في الكائن الأول ، لذا فإن العبارة `if` ترجع true.
* تم العثور على `"likes"` داخل الكائن الأول ، لذا فإن العبارة الثانية `if` صحيحة.
* يتم إرجاع قيمة `"likes"` - `"Pizza", "Coding", "Brownie Points"` .
## ![:clipboard:](https://forum.freecodecamp.com/images/emoji/emoji_one/clipboard.png?v=3 ": الحافظة:") ملاحظات للمساهمات:
* ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":تحذير:") **لا تقم** بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها **_مشابهة ولكن أفضل_** ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
* أضف شرحًا لحلك.
* تصنيف الحل في واحدة من الفئات التالية - **الأساسي** **والمتوسط** **والمتقدم** . ![:traffic_light:](https://forum.freecodecamp.com/images/emoji/emoji_one/traffic_light.png?v=3 ": traffic_light:")
* الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي **محتويات رئيسية ذات صلة** . ( ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":تحذير:") **_لا_** _تزيل أي أسماء مستخدمين حالية_ )
> نرى ![:point_right:](https://forum.freecodecamp.com/images/emoji/emoji_one/point_right.png?v=3 ": point_right:") **`Wiki Challenge Solution Template`** كمرجع.

View File

@@ -0,0 +1,9 @@
---
title: Quoting Strings with Single Quotes
localeTitle: اقتباس السلاسل مع علامات اقتباس مفردة
---
## اقتباس السلاسل مع علامات اقتباس مفردة
هذا هو كعب. [ساعد مجتمعنا على توسيعه](https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/javascript-algorithms-and-data-structures/basic-javascript/quoting-strings-with-single-quotes/index.md) .
[سيساعدك دليل النمط السريع هذا على ضمان قبول طلب السحب](https://github.com/freecodecamp/guides/blob/master/README.md) .

View File

@@ -0,0 +1,97 @@
---
title: Record Collection
localeTitle: جمع السجلات
---
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": triangular_flag_on_post:") تذكر استخدام **`Read-Search-Ask`** إذا واجهتك مشكلة. حاول إقران البرنامج ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": busts_in_silhouette:") واكتب الكود الخاص بك ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":قلم:")
### ![:checkered_flag:](https://forum.freecodecamp.com/images/emoji/emoji_one/checkered_flag.png?v=3 ":العلم متقلب:") شرح المشكلة:
يتم منحك كائن JSON يمثل (جزء صغير من) مجموعة السجلات الخاصة بك. يتم تحديد كل ألبوم بواسطة رقم تعريف فريد وله العديد من الخصائص. ليست جميع الألبومات تحتوي على معلومات كاملة.
اكتب الدالة التي تأخذ **هوية** ، خاصية ( **دعم** ) ، **وقيمة** .
**للمعرف** المحدد في **المجموعة** :
إذا كانت **القيمة** غير فارغة ( **value! == ""** ) ، فقم بتحديث أو تعيين **قيمة** **prop** .
إذا كان **البروب** **"مسارات"** وكانت **القيمة** غير فارغة ، فتحقق مما إذا كان العنصر المحدد في الصفيف له خاصية "المسارات". إذا كان للعنصر خاصية "المسارات" ، فاضغط **القيمة** على نهاية صفيف "المسارات". إذا كان العنصر لا يحتوي على **الخاصية** ، قم بإنشاء زوج الخاصية والقيمة.
إذا كانت **القيمة** فارغة ، **فاحذفها** .
قم دائمًا بإرجاع كائن المجموعة بالكامل.
* تغيير الرمز أدناه `// Only change code below this line` وحتى \\ `// Alter values below to test your code` .
* لاحظ أن تقوم بتحرير داخل وظيفة `updateRecords` .
* بالنسبة لمعلمة **المعرّف** المحددة ، والمرتبطة بكائن **المجموعة** :
* إذا كانت معلمة **value** ليست سلسلة فارغة ، قم بتحديث (أو تعيين) معلمة **value** لمعلمة **prop** .
* إذا كانت معلمة **prop** تساوي `"tracks"` ولا تكون **القيمة** سلسلة فارغة ، فاضغط **القيمة** على نهاية صفيف **المسارات** .
* إذا كانت **القيمة** هي سلسلة فارغة، حذف تلك **دعامة** من الكائن.
* وأخيراً ، قم بإرجاع كائن **المجموعة** .
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 1
استخدم عبارة `else if` للتحقق من الخطوات المطلوبة.
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 2
الخطوة الثانية المذكورة في التعليمات يجب أن تكون الأولى في حياتك `else if` البيان.
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 3
للوصول إلى قيمة مفتاح في هذا الكائن ، ستستخدم `collection[id][prop]` .
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
![علامة تحذير](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**الحل في المستقبل!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ":مبتدئ:") الحل الأساسي للكود:
`function updateRecords(id, prop, value) {
if (prop === "tracks" && value !== "") {
if(collection[id][prop]) {
collection[id][prop].push(value);
}
else {
collection[id][prop]=[value];
}
} else if (value !== "") {
collection[id][prop] = value;
} else {
delete collection[id][prop];
}
return collection;
}
`
![:rocket:](https://forum.freecodecamp.com/images/emoji/emoji_one/rocket.png?v=3 ":صاروخ:") [تشغيل الكود](https://repl.it/C2AZ/0)
### شرح الشفرة:
* يتحقق أولاً إذا كان **prop** يساوي **المسارات** وإذا لم تكن **القيمة** سلسلة فارغة. في حالة مرور كلا الاختبارين ، يتم دفع **القيمة** إلى صفيف **المسارات** .
* إذا لم يتم التحقق من هذا الفحص الأول ، فإنه يتحقق فقط إذا لم تكن **القيمة** سلسلة فارغة. في حالة اجتياز هذا الاختبار ، تتم إضافة مفتاح جديد ( **دعم** ) وقيمة ( **قيمة** ) إلى الكائن ، أو يتم تحديث مفتاح موجود إذا كان **prop** موجودًا بالفعل.
* إذا فشلت كلتا الشيكات (بمعنى أن **القيمة** يجب أن تكون سلسلة فارغة) ، عندئذٍ تتم إزالة المفتاح ( **prop** ) من الكائن.
**مثال تشغيل**
* `updateRecords(5439, "artist", "ABBA");` أشواط.
* **prop** يساوي "الفنان" ، وليس "المسارات" ، لذلك الجزء الأول من `else if` فشل البيان.
* **القيمة** ليست سلسلة فارغة ، لذلك الجزء الثاني من آخر إذا تم تمرير العبارة.
* `artist: "ABBA"` تتم إضافة `artist: "ABBA"` إلى `id` `5439` .
### مصادر:
* [تحدي fcc: الوصول إلى خصائص الكائنات مع تدرج قوس](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/accessing-object-properties-with-bracket-notation/)
* [تحدي fcc: إضافة خصائص جديدة إلى كائن JavaScript](http://www.freecodecamp.com/challenges/add-new-properties-to-a-javascript-object)
* [تحدي fCC: حذف الخصائص من كائن JavaScript](http://www.freecodecamp.com/challenges/delete-properties-from-a-javascript-object)
* [تحدي fCC: الوصول إلى الكائنات المتداخلة](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/accessing-nested-objects/)
* ["Array.prototype.push ()" - _مرجع JavaScript الخاص بـ MDN_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push)
* ["delete operator" - _MDN JavaScript reference_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete)

View File

@@ -0,0 +1,9 @@
---
title: Replacing If Else Chains with Switch
localeTitle: استبدال إذا Else سلاسل مع التبديل
---
## استبدال إذا Else سلاسل مع التبديل
هذا هو كعب. [ساعد مجتمعنا على توسيعه](https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/javascript-algorithms-and-data-structures/basic-javascript/replacing-if-else-chains-with-switch/index.md) .
[سيساعدك دليل النمط السريع هذا على ضمان قبول طلب السحب](https://github.com/freecodecamp/guides/blob/master/README.md) .

View File

@@ -0,0 +1,12 @@
---
title: Return a Value from a Function with Return
localeTitle: إرجاع قيمة من دالة مع العودة
---
## إرجاع قيمة من دالة مع العودة
باستخدام `return` ، يمكنك جعل بيانات الإخراج الوظائف. هنا هو الحل الأساسي رمز:
`function timesFive(num) {
return num * 5;
}
`

View File

@@ -0,0 +1,9 @@
---
title: Return Early Pattern for Functions
localeTitle: العودة للنموذج المبكر للوظائف
---
## العودة للنموذج المبكر للوظائف
هذا هو كعب. [ساعد مجتمعنا على توسيعه](https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/javascript-algorithms-and-data-structures/basic-javascript/return-early-pattern-for-functions/index.md) .
[سيساعدك دليل النمط السريع هذا على ضمان قبول طلب السحب](https://github.com/freecodecamp/guides/blob/master/README.md) .

View File

@@ -0,0 +1,51 @@
---
title: Returning Boolean Values from Functions
localeTitle: إرجاع القيم المنطقية من الدالات
---
## إرجاع القيم المنطقية من الدالات
بدلاً من استخدام كتلة if / else لمقارنة المتغير ، يمكننا القيام بذلك مباشرةً داخل بيان الإرجاع مع مشغل المقارنة والشفرة الثانوية.
### شرح المشكلة
_فيكس وظيفة هو `isLess` من إزالة العبارة `if...else` ._
`// Fix this code
if (a < b) {
return true;
} else {
return false;
}
`
#### تلميح 1
كما هو الحال مع [التمرين السابق ،](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/replacing-if-else-chains-with-switch) أنت على وشك تغيير كيفية إرجاع الدالة للقيمة الصحيحة ، مما يعني أنك لست مضطرًا لإعادة استخدام أو تعديل هذا الرمز ولكن لاستبداله.
> اول أن تحل المشكلة الآن_
#### تلميح 2
من أجل العودة `true` أو `false` لا تحتاج بيانين ولا تستخدم `if` منها. [عامل المقارنة](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators) الصحيح هو كل ما تحتاجه.
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
**الحل في المستقبل!**
## حل الرمز:
`function isLess(a, b) {
// Fix this code
return a <= b;
}
// Change these values to test
isLess(10, 15);
`
تشغيل الكود في [repl.it.](https://repl.it/@AdrianSkar/Basic-Js-Returning-boolean-from-function)
### مصادر
* ["عامل تشغيل أقل من أو مساوي (<=)" - _مرجع Javascript الخاص بـ MDN_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Less_than_or_equal_operator_(%3C))

View File

@@ -0,0 +1,124 @@
---
title: Selecting from Many Options with Switch Statements
localeTitle: اختيار من العديد من الخيارات مع تبديل البيانات
---
## اختيار من العديد من الخيارات مع تبديل البيانات
_إذا كان لديك العديد من الخيارات للاختيار من بينها ، فاستخدم عبارة `switch` . يختبر بيان `switch` قيمة ويمكن أن يحتوي على العديد من عبارات `case` التي تحدد القيم المحتملة المختلفة. يتم تنفيذ البيانات من قيمة `case` الأولى المتطابقة حتى تتم مواجهة `break` ._
_في ما يلي مثال pseudocode:_
` switch(num) {
case value1:
statement1;
break;
case value2:
statement2;
break;
...
case valueN:
statementN;
break;
}
`
### أكثر قليلا من الشرح
يقوم بيان التبديل أولاً بتقييم التعبير الخاص به. ثم يبحث عن جملة `case` الأولى التي يتم تقييم التعبير لها بنفس القيمة الناتجة عن تعبير الإدخال (باستخدام [المقارنة الصارمة](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators) ، ( `===` ) وينقل التحكم إلى ذلك البند ، تنفيذ العبارات المرتبطة. (إذا كانت هناك حالات متعددة تتطابق القيمة المقدمة ، يتم تحديد الحالة الأولى المطابقة ، حتى إذا كانت الحالات لا تساوي بعضها البعض.)
إذا لم يتم العثور على فقرة `case` مطابقة ، يبحث البرنامج عن جملة `default` اختيارية ، وإذا تم العثور عليه ، ينقل التحكّم إلى هذا البند ، وينفذ البيانات المرتبطة. إذا لم يتم العثور على جملة `default` ، يتابع البرنامج التنفيذ في البيان التالي لنهاية `switch` . حسب الاصطلاح ، فإن الجملة `default` هي الجملة الأخيرة ، ولكنها لا تحتاج إلى أن تكون كذلك.
يضمن بيان `break` الاختياري المرتبط بكل ملصق حالة أن البرنامج يخرج من المفتاح بمجرد تنفيذ البيان المطابق ومواصلة التنفيذ في البيان التالي للتبديل. إذا تم حذف `break` ، يستمر البرنامج في التنفيذ في العبارة التالية في عبارة `switch` . [1](#cite1)
### شرح المشكلة:
_اكتب عبارة التبديل التي تختبر `val` `answer` عن الشروط التالية:_
* `1` - "ألفا" ،
* `2` - "beta" ،
* `3` - "جاما" ،
* `4` - "دلتا".
## تلميح 1
تذكر أن قيم `case` يتم اختبارها بالمساواة الصارمة ( `===` ).
> حاول حل المشكلة الآن!
## تلميح 2
لا تشاهد _"الشروط التالية"_ كقائمة مرتبة كما تبدو في العرض التوضيحي freeCodeCamp الأصلي ، ولكن كقيم وعبارات ، كما هو موضح هنا
> حاول حل المشكلة الآن!
## تنبيه المفسد!
### هل أنت متأكد تماما ما تريد نظرة؟ ...
## حل الرمز الأساسي
`function caseInSwitch(val) {
var answer = "";
// Only change code below this line
switch(val) {
case 1:
return "alpha";
break;
case 2:
return "beta";
break;
case 3:
return "gamma";
break;
case 4:
return "delta";
break;
}
// Only change code above this line
return answer;
}
// Change this value to test
caseInSwitch(1);
`
### شرح الشفرة
من الشائع تجاهل أن قيم `case` يتم اختبارها بالمساواة الصارمة مع أي حاجة للتعبير الآخر ، مثل: `case === value`
## حل رمز بديل:
`function caseInSwitch(val) {
var answer = "";
// Only change code below this line
switch (val){
case 1:
answer="alpha";
break;
case 2:
answer="beta";
break;
case 3:
answer="gamma";
break;
case 4:
answer="delta";
break;
}
// Only change code above this line
return answer;
}
// Change this value to test
caseInSwitch(1);
`
تشغيل الكود في [repl.it.](https://repl.it/@AdrianSkar/Basic-JS-Switch-statements)
### تفسير الشفرة
نظرًا لأن لديك بالفعل متغيرًا محددًا في بداية الدالة المسمى `answer` ، ويتم تعريفه على أنه آخر كشف للإرجاع ، فيمكنك تعيين قيم جديدة له لكل حالة وسيقوم بإرجاع الإجابة المتوقعة استنادًا إلى القيمة التي تمررها إلى الوظيفة.
### مصادر
1 . [وصف "switch" - _مرجع JavaScript الخاص بـ MDN_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch#Description) .

View File

@@ -0,0 +1,65 @@
---
title: Shopping List
localeTitle: قائمة التسوق
---
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": triangular_flag_on_post:") تذكر استخدام **`Read-Search-Ask`** إذا واجهتك مشكلة. حاول إقران البرنامج ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": busts_in_silhouette:") واكتب الكود الخاص بك ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":قلم:")
### ![:checkered_flag:](https://forum.freecodecamp.com/images/emoji/emoji_one/checkered_flag.png?v=3 ":العلم متقلب:") شرح المشكلة:
قم بإنشاء قائمة تسوق في **myList** المتغير. يجب أن تكون القائمة مصفوفة متعددة الأبعاد تحتوي على العديد من المصفوفات الفرعية.
يجب أن يحتوي العنصر الأول في كل مصفوفة فرعية على سلسلة تحمل اسم العنصر. يجب أن يكون العنصر الثاني عبارة عن رقم يمثل الكمية `["Chocolate Bar", 15]` .
يجب أن يكون هناك 5 صفيف فرعي على الأقل في القائمة.
* يجب أن يكون **myList** صفيف.
* يجب أن تكون العناصر الأولى في كل صفائف فرعية سلاسل.
* يجب أن تكون العناصر الثانية في كل من المصفوفات الفرعية أرقامًا.
* يجب أن يكون لديك 5 عناصر على الأقل في قائمتك.
#### روابط ذات صلة
* [التحدي: عش أحد المصفوفة داخل صفيف آخر](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/nest-one-array-within-another-array/)
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 1
سيكون للمصفوفة متعددة الأبعاد المخطط التالي `[[]]` .
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 2
يجب فصل كل مصفوفة فرعية `,` كما هو الحال مع أي عنصر في مصفوفة.
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 3
لا ننسى `;` في نهاية الإعلان الخاص بك.
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
![علامة تحذير](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**الحل في المستقبل!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ":مبتدئ:") الحل الأساسي للكود:
`var myList = [["Canned Beans", 3],["Milk Galon", 1],["Cereal", 2],["Toilet Paper", 12],["Sack of Rice", 1]];
`
### شرح الشفرة:
* يتم إنشاء مجموعة متعددة الأبعاد.
* يتكون المصفوفة من خمس صفائف بداخله ، يتكون كل منها من سلسلة وعدد صحيح ، بنفس الترتيب.
## ![:clipboard:](https://forum.freecodecamp.com/images/emoji/emoji_one/clipboard.png?v=3 ": الحافظة:") ملاحظات للمساهمات:
* ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":تحذير:") **لا تقم** بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها **_مشابهة ولكن أفضل_** ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
* أضف شرحًا لحلك.
* تصنيف الحل في واحدة من الفئات التالية - **الأساسي** **والمتوسط** **والمتقدم** . ![:traffic_light:](https://forum.freecodecamp.com/images/emoji/emoji_one/traffic_light.png?v=3 ": traffic_light:")
* الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي **محتويات رئيسية ذات صلة** . ( ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":تحذير:") **_لا_** _تزيل أي أسماء مستخدمين حالية_ )
> نرى ![:point_right:](https://forum.freecodecamp.com/images/emoji/emoji_one/point_right.png?v=3 ": point_right:") [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) كمرجع.

View File

@@ -0,0 +1,73 @@
---
title: Stand in Line
localeTitle: قف على الصف
---
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": triangular_flag_on_post:") تذكر استخدام **`Read-Search-Ask`** إذا واجهتك مشكلة. حاول إقران البرنامج ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": busts_in_silhouette:") واكتب الكود الخاص بك ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":قلم:")
### ![:checkered_flag:](https://forum.freecodecamp.com/images/emoji/emoji_one/checkered_flag.png?v=3 ":العلم متقلب:") شرح المشكلة:
في علوم الكمبيوتر ، ائمة الانتظار_ هي **بنية بيانات** مجردة حيث يتم حفظ العناصر بالترتيب. يمكن إضافة عناصر جديدة في الجزء الخلفي من **قائمة الانتظار** ويتم أخذ العناصر القديمة من أمام **قائمة الانتظار** .
اكتب دالة `nextInLine` والتي تأخذ صفيف ( **arr** ) ورقم ( **item** ) كوسيطة. أضف الرقم إلى نهاية الصفيف ، ثم أزل أول عنصر في الصفيف. يجب أن تقوم الدالة `nextInLine` بإرجاع العنصر الذي تمت إزالته.
* تغيير الرمز أدناه `//Your Code here` `//Change this line` .
* تأكد من أنك تقوم بتحرير داخل وظيفة `nextInLine` .
* استخدم وظيفة مصفوفة تعلمتها لإضافة **العنصر** إلى نهاية صفيف **arr** .
* استخدم وظيفة مصفوفة تعلمتها لإزالة العنصر الأول من صفيف **arr** .
* إرجاع العنصر إزالتها.
#### روابط ذات صلة
* [تحدي: التعامل مع صفائف بدفع ()](http://www.freecodecamp.com/challenges/manipulate-arrays-with-push)
* [تحدي: التعامل مع صفائف مع shift ()](http://www.freecodecamp.com/challenges/manipulate-arrays-with-shift)
* [التحدي: تمرير القيم إلى دالات مع الوسيطات](http://www.freecodecamp.com/challenges/passing-values-to-functions-with-arguments)
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 1
تضيف طريقة `push()` عنصرًا إلى نهاية صفيف.
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 2
تقوم طريقة `shift()` بإزالة العنصر الأول من المصفوفة. كما تقوم بإرجاع العنصر الذي تمت إزالته.
> اول أن تحل المشكلة الآن_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 3
وظيفة `nextInLine` يستخدم **آر** **والبند.** هذه هي ما ستستخدمه الاختبارات لتمرير عناصر الصفيف التي سيختبرونها. انها تسمح للوظيفة لتكون قابلة لإعادة الاستخدام. لا تجزئ أي من الاختبارات داخل الوظيفة.
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
![علامة تحذير](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**الحل في المستقبل!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ":مبتدئ:") الحل الأساسي للكود:
`function nextInLine(arr, item) {
// Your code here
arr.push(item);
var removed = arr.shift();
return removed; // Change this line
}
`
### شرح الشفرة:
* دفع **البند** في نهاية **arr** .
* استدعاء الأسلوب `shift()` على **arr** للحصول على العنصر الأول وتخزينها في **إزالتها** .
* العودة **إزالتها** .
**مثال تشغيل**
* اختبار `nextInLine([2,1]);` أشواط.
* يتم `nextInLine` الدالة `nextInLine` . **arr** يصبح \[2\]. يصبح **البند** 1.
* `arr.push(item);` يدفع 1 إلى \[2\]. إذن **صار arr** الآن \[2،1\].
* `var removed = arr.shift();` يزيل العنصر الأول. إذن **arr** هو الآن \[1\]. تمت إزالة 2 ويتم تخزينها في **إزالتها** .
* `return removed;` 2 يتم إرجاعها.
**_ملاحظة_** : أنت لا تحتاج فعليًا إلى **إزالة** المتغير. يمكن إرجاع العنصر الذي تمت إزالته مباشرةً باستخدام `return arr.shift();` .

View File

@@ -0,0 +1,16 @@
---
title: Store Multiple Values in one Variable using JavaScript Arrays
localeTitle: تخزين قيم متعددة في متغير واحد باستخدام مصفوفات جافا سكريبت
---
## تخزين قيم متعددة في متغير واحد باستخدام مصفوفات جافا سكريبت
تسمح لك المصفوفات بتخزين الكثير من البيانات المختلفة ، ضمن متغير واحد. كل ما عليك القيام به هو وضع البيانات في الصفيف ، مفصولة بفواصل. مثل ذلك…
`var arr = ["Code for change", 123];
`
تذكر ، يتم تعريف صفيف كصف من الأشياء. أنت تخزن بيانات مختلفة في "صف" مفرد (متغير).
تحقق من هذا الرابط إذا كنت بحاجة إلى مزيد من المساعدة:
[مصفوفات جافا سكريبت على مدارس W3](https://www.w3schools.com/js/js_arrays.asp)

View File

@@ -0,0 +1,14 @@
---
title: Storing Values with the Assignment Operator
localeTitle: تخزين القيم مع مشغل الواجب
---
## تخزين القيم مع مشغل الواجب
انها مجرد مثل الرياضيات! يمكنك تعيين متغير للعمل كعنصر نائب للبيانات باستخدام عامل التشغيل "=". بمعنى آخر ، سيخزن المتغير البيانات.
`var a;
a = 5; // The variable 'a' is equal to 5
var zxcv;
zxcv = 123; // The variable 'abc' is equal to 123
`

View File

@@ -0,0 +1,11 @@
---
title: Subtract One Number from Another with JavaScript
localeTitle: اطرح رقم واحد من آخر باستخدام JavaScript
---
## اطرح رقم واحد من آخر باستخدام JavaScript
باستخدام عامل الطرح "-" ، يمكنك الحصول على الفرق بين رقمين ...
`var diff1 = 30 - 14; // Difference is 16
var diff2 = 90 - 60; // Difference is 30
`

View File

@@ -0,0 +1,61 @@
---
title: Testing Objects for Properties
localeTitle: اختبار كائنات للعقارات
---
## اختبار كائنات للعقارات
هنا هو المثال:
`// Setup
var myObj = {
gift: "pony",
pet: "kitten",
bed: "sleigh"
};
function checkObj(checkProp) {
// Your Code Here
return "Change Me!";
}
// Test your code by modifying these values
checkObj("gift");
`
وإليك الحل:
نحن لا نغير أي شيء هنا:
`// Setup
var myObj = {
gift: "pony",
pet: "kitten",
bed: "sleigh"
};
`
كذلك ، في الجسم من الدالة التي نستخدمها. `.hasOwnProperty(propname)` للكائنات لتحديد ما إذا كان هذا الكائن لديه اسم خاصية معينة. `if/else` العبارة `if/else` ذات القيم المنطقية ستساعدنا في هذا:
``function checkObj(checkProp) {
// Your Code Here
if (myObj.hasOwnProperty(checkProp) == true) {
return myObj[checkProp];
}
else {
```
and change the value of `return` in `else` statement:
``
جافا سكريبت العودة "غير موجود" } }
``Now, you can change `checkObj` values:
``
جافا سكريبت // اختبار التعليمة البرمجية الخاصة بك عن طريق تعديل هذه القيم checkObj ( "هدية")؛
`Here's a full solution:
`
جافا سكريبت وظيفة checkObj (checkProp) { // رمزك هنا if (myObj.hasOwnProperty (checkProp) == true) { return myObj \[checkProp\] ، } else { العودة "غير موجود" } } // اختبار التعليمة البرمجية الخاصة بك عن طريق تعديل هذه القيم checkObj ( "هدية")؛ \`\` \`

View File

@@ -0,0 +1,9 @@
---
title: Understand String Immutability
localeTitle: فهم عدم ثبات السلسلة
---
## فهم عدم ثبات السلسلة
هذا هو كعب. [ساعد مجتمعنا على توسيعه](https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/javascript-algorithms-and-data-structures/basic-javascript/understand-string-immutability/index.md) .
[سيساعدك دليل النمط السريع هذا على ضمان قبول طلب السحب](https://github.com/freecodecamp/guides/blob/master/README.md) .

View File

@@ -0,0 +1,41 @@
---
title: Understanding Boolean values
localeTitle: فهم القيم المنطقية
---
## فهم القيم المنطقية
### شرح المشكلة:
قم بتعديل الوظيفة `welcomeToBooleans` بحيث تقوم بإرجاع `true` بدلاً من `false` عند النقر فوق الزر "تشغيل".
### تلميح 1
تحتاج فقط إلى تحرير السطر 5 بحيث تقوم الدالة بإرجاع `true` بدلاً من `false` .
> اول أن تحل المشكلة الآن_
## تنبيه المفسد!
**الحل في المستقبل!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ":مبتدئ:") حل الرمز الأساسي:
`function welcomeToBooleans() {
// Only change code below this line.
return true; // Change this line
// Only change code above this line.
}
`
### تفسير الشفرة
مجرد تعديل القيمة `Boolean` التي لن تتمكن من إرجاعها من `false` إلى `true` ستلبي المتطلبات.
### مصادر
[مسرد MDN - منطقي](https://developer.mozilla.org/en-US/docs/Glossary/Boolean)
[ويكيبيديا - نوع البيانات المنطقية](https://en.wikipedia.org/wiki/Boolean_data_type)

View File

@@ -0,0 +1,13 @@
---
title: Understanding Case Sensitivity in Variables
localeTitle: فهم حساسية الحالة في المتغيرات
---
## فهم حساسية الحالة في المتغيرات
قاعدة البرمجة الشائعة هي استخدام **حالة الجمل** عند إنشاء أسماء المتغيرات. لاحظ أن الكلمة الأولى هي أحرف صغيرة وكل كلمة تالية هي كبيرة. وهنا بعض الأمثلة:
`var camelCase;
var someNumber;
var theBestVariableEver;
var weWillStoreNumbersInThisVariable;
`

View File

@@ -0,0 +1,19 @@
---
title: Understanding Undefined Value returned from a Function
localeTitle: فهم قيمة غير محددة عاد من وظيفة
---
## فهم قيمة غير محددة عاد من وظيفة
وظيفة مع عدم وجود بيان `return` ، لديها خرج من `undefined` . لذلك ، إذا حاولت مساواة متغير إلى إخراج دالة مع عدم وجود عبارة `return` ، فسوف يساوي هذا المتغير `undefined` .
المضي قدما وتحديد `addFive()` مثل ذلك ...
`function addFive() {
sum += 5;
}
`
كما ترى ، يتم إضافة `sum` ب 5 بدون مشاكل ، ولكن بما أنه لا يوجد بيان إرجاع ، فهناك مخرجات `undefined` .
`var result = addFive(); // This is undefined
`

View File

@@ -0,0 +1,7 @@
---
title: Understanding Uninitialized Variables
localeTitle: فهم متغيرات غير مهيأة
---
## فهم متغيرات غير مهيأة
تأكد من أن المتغير يحتوي على قيمة البيانات الصحيحة. قد يؤدي ترك متغير غير مهيأ ، بمعنى عدم إعطائه قيمة ، إلى حدوث مشكلات إذا كنت تريد إجراء عمليات عليه.

View File

@@ -0,0 +1,26 @@
---
title: Updating Object Properties
localeTitle: تحديث خصائص الكائن
---
## تحديث خصائص الكائن
## ملحوظة:
استخدم نقطة \*\*. \*\* تدوين للوصول إلى خاصية الكائن.
## تنبيه المفسد: الحل إلى الأمام!
## حل:
`// Setup
var myDog = {
"name": "Coder",
"legs": 4,
"tails": 1,
"friends": ["freeCodeCamp Campers"]
};
// Only change code below this line.
myDog.name = "Happy Coder"; // Solution
`

View File

@@ -0,0 +1,11 @@
---
title: Use Bracket Notation to Find the First Character in a String
localeTitle: استخدم تدرج قوس لإيجاد الحرف الأول في سلسلة
---
## استخدم تدرج قوس لإيجاد الحرف الأول في سلسلة
تذكر أن الحرف الأول لسلسلة ما يكون في الموضع الصفري. فمثلا:
`var str = "Hello";
var letter = str[0]; // This equals "H"
`

View File

@@ -0,0 +1,19 @@
---
title: Use Bracket Notation to Find the Last Character in a String
localeTitle: استخدم Bracket Notation لإيجاد الحرف الأخير في سلسلة
---
## استخدم Bracket Notation لإيجاد الحرف الأخير في سلسلة
خذ بعين الاعتبار السلسلة التالية:
`var str = "Coding";
`
يبلغ طول هذه السلسلة 6 أحرف ، لذا إذا استخدمت .length على السلسلة ، فستعطيك 6. لكن تذكر أن الحرف الأول في الموضع الصفري. الحرف الثاني هو في الموضع الأول. الحرف الثالث هو في الموضع الثاني.
استمر في العمل ، وستحصل في النهاية على الحرف السادس (الذي ، استنادًا إلى السلسلة أعلاه ، هو 'g') في المركز الخامس. هذا هو السبب في حصولك على آخر حرف لسلسلة ، مع:
`var lastChar = str[str.length - 1]; // This is 6 - 1, which is 5
`
هذا سيكون "ز".

View File

@@ -0,0 +1,7 @@
---
title: Use Bracket Notation to Find the Nth Character in a String
localeTitle: استخدم Bracket Notation لإيجاد الحرف Nth في سلسلة
---
## استخدم Bracket Notation لإيجاد الحرف Nth في سلسلة
تذكر أن الحرف الأول لسلسلة ما يقع عند الموضع 0. لذا يجب أن يكون الحرف الثاني في الموضع الأول. ثم يجب أن يكون الحرف الثالث في ... هممم؟

View File

@@ -0,0 +1,13 @@
---
title: Use Bracket Notation to Find the Nth-to-Last Character in a String
localeTitle: استخدم Bracket Notation للبحث عن الحرف Nth-to-Last في سلسلة
---
## استخدم Bracket Notation للبحث عن الحرف Nth-to-Last في سلسلة
تذكر أن موضع أي حرف ، هو **طول السلسلة ، ناقص واحد ، مطروحًا منه عدد الأحرف بعده** . على سبيل المثال ، إذا كنت تحاول العثور على الحرف الثالث الأخير من السلسلة التالية:
`var str = "Programming";
var secondToLastChar = str[str.length - 2]; // This is 'i'
`
كما ترى ، هناك حرف إضافي واحد بعد 'n' (وهذا هو 'g').

Some files were not shown because too many files have changed in this diff Show More