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,65 @@
---
title: Iterate Through the Keys of an Object with a for...in Statement
localeTitle:  يتكرر عبر مفاتيح كائن مع لـ ... في بيان
---
## يتكرر عبر مفاتيح كائن مع لـ ... في بيان
طريقة:
* ملاحظة: ستتسبب `dot-notation` حدوث أخطاء في هذا التحدي.
* يجب استخدام الترميز `[square-bracket]` لاستدعاء اسم خاصية متغير.
* التعليمة البرمجية التالية لن تعمل.
### مثال 1:
`for (let user in obj) {
if(obj.user.online === true) {
//code
}
}
`
* يوضح المثال 2 كيفية استخدام الترميز `[square-bracket]` في تنفيذ الشفرة.
### المثال 2:
`for (let user in obj) {
if(obj[user]online === true) {
//code
}
}
`
### حل:
`let users = {
Alan: {
age: 27,
online: false
},
Jeff: {
age: 32,
online: true
},
Sarah: {
age: 48,
online: false
},
Ryan: {
age: 19,
online: true
}
};
function countOnline(obj) {
// change code below this line
let result = 0;
for (let user in obj) {
if(obj[user].online === true) {
result++;
}
}
return result;
// change code above this line
}
console.log(countOnline(users));
`

View File

@@ -0,0 +1,12 @@
---
title: Access an Array's Contents Using Bracket Notation
localeTitle: الوصول إلى محتويات صفيف باستخدام تدرج قوس
---
## الوصول إلى محتويات صفيف باستخدام تدرج قوس
* تذكر أن مؤشر الصفائف يبدأ من 0 حتى يكون موقع b موجودًا في `myArray[1]` .
## حل
`myArray[1] = "anything we want";
`

View File

@@ -0,0 +1,42 @@
---
title: Access Property Names with Bracket Notation
localeTitle: الوصول إلى خاصية الأسماء مع تدرج قوس
---
## الوصول إلى خاصية الأسماء مع تدرج قوس
طريقة:
* باستخدام `checkInventory()` قوس ببساطة اكتب بيان الإرجاع في الدالة `checkInventory()` .
* كتلة التعليمات البرمجية التالية يوضح بناء الجملة المطلوب.
## مثال:
`let juice = {
apple: 1.15,
orange: 1.45
};
function checkInventory(scannedItem) {
return juice[scannedItem];
}
`
## حل:
`let foods = {
apples: 25,
oranges: 32,
plums: 28,
bananas: 13,
grapes: 35,
strawberries: 27
};
// do not change code above this line
function checkInventory(scannedItem) {
// change code below this line
return foods[scannedItem];
}
// change code below this line to test different cases:
console.log(checkInventory("apples"));
`

View File

@@ -0,0 +1,21 @@
---
title: Add Items to an Array with push() and unshift()
localeTitle: إضافة عناصر إلى مصفوفة بدفع () و unshift ()
---
## إضافة عناصر إلى مصفوفة بدفع () و unshift ()
* تمامًا مثل المثال المعطى ، استخدم طريقة `.unshift()` على الصفيف لإضافة عناصر إلى بداية الصفيف واستخدم طريقة `.push()` لإضافة عناصر إلى نهاية الصفيف.
## حل:
`function mixedNumbers(arr) {
// change code below this line
arr.unshift('I',2,'three');
arr.push(7,'VIII', 9);
// change code above this line
return arr;
}
// do not change code below this line
console.log(mixedNumbers(['IV', 5, 'six']));
`

View File

@@ -0,0 +1,32 @@
---
title: Add Items Using splice()
localeTitle: إضافة عناصر باستخدام لصق ()
---
## إضافة عناصر باستخدام لصق ()
* باستخدام الدالة splice () ، يجب إزالة العناصر 2 أولاً من `arr` واستبدالها مع `DarkSalmon` و `BlanchedAlmond` .
* تذكر أن وظيفة لصق يمكن أن يستغرق ما يصل إلى ثلاثة معلمات.
## مثال:
``arr.splice(0, 1, "Two");
/* The first two paramemters are the same as they were in the previous challenge.
`0` will start the `splice()` function off at index 0.
The second parameter `1` will remove only 1 variable from the array.
The final variable "Two" will replace the variable in arr[0].
Note: The final parameter can take more than 1 arguement.
*/
``
## حل:
`function htmlColorNames(arr) {
// change code below this line
arr.splice(0, 2, "DarkSalmon", "BlanchedAlmond");
// change code above this line
return arr;
}
// do not change code below this line
console.log(htmlColorNames(['DarkGoldenRod', 'WhiteSmoke', 'LavenderBlush', 'PaleTurqoise', 'FireBrick']));
`

View File

@@ -0,0 +1,27 @@
---
title: Add Key-Value Pairs to JavaScript Objects
localeTitle: إضافة أزواج Key-Value إلى كائنات JavaScript
---
## إضافة أزواج Key-Value إلى كائنات JavaScript
* وقد أعلن بالفعل كائن الأطعمة. كل ما تبقى القيام به هو إضافة ثلاث `key-values` جديدة.
`OBJECT[{KEY}] = {VALUE}
`
* سيعمل الرمز أعلاه على إنشاء `key-value` ney داخل الكائن.
## حل
`let foods = {
apples: 25,
oranges: 32,
plums: 28
};
// change code below this line
foods['bananas'] = 13;
foods['grapes'] = 35;
foods['strawberries'] = 27;
// change code above this line
console.log(foods);
`

View File

@@ -0,0 +1,30 @@
---
title: Check For The Presence of an Element With indexOf()
localeTitle: التحقق من وجود عنصر مع indexOf ()
---
## التحقق من وجود عنصر مع indexOf ()
* يمكن استخدام `if-statement` بسيطة للتحقق ما إذا كانت القيمة التي يتم إرجاعها بواسطة الدالة `indexOf()` أقل من 0.
* بمجرد اكتشاف القيمة ، يمكنك إرجاع إما `true` أو `false` .
* يوضح `Solution-1` كيف يمكن `if-statement` simple بسيطة إرجاع النتيجة الصحيحة.
## حل 1:
`function quickCheck(arr, elem) {
if(arr.indexOf(elem)>=0) {
return true;
}
return false;
}
console.log(quickCheck(['squash', 'onions', 'shallots'], 'mushrooms'));
`
* يوضح `Solution-2` كيف يمكن حل المشكلة باستخدام `? : (conditional)` المشغل.
## حل 2:
`function quickCheck(arr, elem) {
return arr.indexOf(elem) >= 0 ? true : false;
}
console.log(quickCheck(['squash', 'onions', 'shallots'], 'mushrooms'));
`

View File

@@ -0,0 +1,52 @@
---
title: Check if an Object has a Property
localeTitle: تحقق مما إذا كان الكائن يحتوي على خاصية
---
## تحقق مما إذا كان الكائن يحتوي على خاصية
طريقة:
* إن أبسط طريقة لإكمال هذا التحدي هي إنشاء عبارة `ìf-statement` للتحقق من الطقس أو عدم احتواء الكائن على جميع المستخدمين ، ثم إرجاع بيان صواب أو خطأ. الحل الأول يفعل هذا فقط.
* يعمل الحل الثاني بالطريقة نفسها تمامًا ، فقط يستخدم سطرًا واحدًا من الشفرة - `Conditional(ternary)-Operator` - داخل الوظيفة.
يقدم [developer.mozilla.org](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) تحليلاً أكثر عمقًا للمشغل الثلاثي.
### حل 1:
`let users = {
Alan: {
age: 27,
online: true
},
Jeff: {
age: 32,
online: true
},
Sarah: {
age: 48,
online: true
},
Ryan: {
age: 19,
online: true
}
};
function isEveryoneHere(obj) {
// change code below this line
if(users.hasOwnProperty('Alan','Jeff','Sarah','Ryan')) {
return true;
}
return false;
// change code above this line
}
console.log(isEveryoneHere(users));
`
### حل 2:
`function isEveryoneHere(obj) {
return (users.hasOwnProperty('Alan','Jeff','Sarah','Ryan')) ? true : false;
}
`

View File

@@ -0,0 +1,19 @@
---
title: Combine Arrays with the Spread Operator
localeTitle: الجمع بين المصفوفات مع المشغل انتشار
---
## الجمع بين المصفوفات مع المشغل انتشار
* الحل هو بالضبط مثل المثال المعطى. ما عليك سوى إدخال المصفوفة `fragment[]` في مصفوفة `sentence[]` في الفهرس المرغوب.
## حل:
`function spreadOut() {
let fragment = ['to', 'code'];
let sentence = ["learning", ...fragment, "is", "fun"]; // change this line
return sentence;
}
// do not change code below this line
console.log(spreadOut());
`

View File

@@ -0,0 +1,20 @@
---
title: Copy an Array with the Spread Operator
localeTitle: نسخ صفيف مع المشغل انتشار
---
## نسخ صفيف مع المشغل انتشار
* يخبرك التلميح الأخير في المثال باستخدام طريقة تم تعلمها مؤخرًا.
* يقوم عامل توزيع النشر بنسخ جميع العناصر إلى كائن فارغ جديد.
\`\` \`جافا سكريبت بينما (عدد> = 1) { newArr = \[… arr\] num--. }
``- The code above will copy all of the elements into `newArr` but will also reinitialise `newArr` with every new iteration of the while loop.
- A new variable should first be initialised using the spread operator - `let obj = [...arr];` - then this variable should be added to the `newArr` for every iteration of the while loop.
## Solution:
``
جافا سكريبت وظيفة copyMachine (arr، num) { let newArr = \[\]؛ بينما (عدد> = 1) { // تغيير رمز أدناه هذا الخط newArr.push (\[... آر\])؛ // تغيير الكود فوق هذا الخط num--. } عودة newArr ؛ }
// تغيير الرمز هنا لاختبار الحالات المختلفة: console.log (copyMachine (\[true، false، true\]، 2))؛ \`\` \`

View File

@@ -0,0 +1,27 @@
---
title: Copy Array Items Using slice()
localeTitle: نسخ صفيف العناصر باستخدام شريحة ()
---
## نسخ صفيف العناصر باستخدام شريحة ()
* يجب استخدام الدالة `slice()` لإرجاع صفيف يتكون من `warm` `sunny` فقط.
* لذلك ، يجب تمرير معلمتين إلى الدالة `slice()` . يجب أن تكون المعلمة الأولى هي الفهرس الذي تريد أن تبدأه السلسلة الفرعية. يجب أن تكون المعلمة الثانية هي الفهرس الذي تنتهي عنده السلسلة الفرعية.
* ملاحظة: سيتم إنهاء المعلمة الثانية في السلسلة الفرعية في هذا الفهرس بالضبط.
## مثال:
` return arr.slice(1,4);
/* This will return a substring consisting of indexs [1,2,3]
Note: arr[4] is NOT included.
`
## حل:
`function forecast(arr) {
// change code below this line
return arr.slice(2,4);
}
// do not change code below this line
console.log(forecast(['cold', 'rainy', 'warm', 'sunny', 'cool', 'thunderstorms']));
`

View File

@@ -0,0 +1,25 @@
---
title: Create complex multi-dimensional arrays
localeTitle: إنشاء صفائف معقدة متعددة الأبعاد
---
## إنشاء صفائف معقدة متعددة الأبعاد
* يجب أن تدرج السلسلة الأولى - `deep` - ثلاثة مستويات عميقة. هذا يعني ضمن ثلاث مجموعات بالضبط من `[square-brackets]` .
`let threeLevelArray = ["first level", ["Two levels deep", ["Three levels deep"]]];
`
* باستخدام هذه السلاسل إدراج المنطق `deep` ، `deeper` `deepest` في المصفوفة ثلاث مستويات عميقة ، أربعة مستويات عميقة وخمس مستويات العميق على التوالي.
## حل:
`let myNestedArray = [
// change code below this line
['unshift', false, 1, 2, 3, 'complex', 'nested'],
['loop', 'shift', 6, 7, 1000, 'method'],
['concat', false, true, 'spread', 'array',["deep"]],
['mutate', 1327.98, 'splice', 'slice', 'push', [["deeper"]]],
['iterate', 1.3849, 7, '8.4876', 'arbitrary', 'depth', [[["deepest"]]] ]
// change code above this line
];
`

View File

@@ -0,0 +1,40 @@
---
title: Generate an Array of All Object Keys with Object.keys()
localeTitle: إنشاء صفيف من كافة مفاتيح الكائنات مع Object.keys ()
---
## إنشاء صفيف من كافة مفاتيح الكائنات مع Object.keys ()
### طريقة:
* لإرجاع صفيف المستخدمين يجب أن تأخذ أسلوب `Object.keys()` .
* يمكن حل هذا التحدي باستخدام بيان إرجاع سطر واحد.
### حل:
`let users = {
Alan: {
age: 27,
online: false
},
Jeff: {
age: 32,
online: true
},
Sarah: {
age: 48,
online: false
},
Ryan: {
age: 19,
online: true
}
};
function getArrayOfUsers(obj) {
// change code below this line
return Object.keys(obj);
// change code above this line
}
console.log(getArrayOfUsers(users));
`

View File

@@ -0,0 +1,11 @@
---
title: Basic Data Structures
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,49 @@
---
title: Iterate Through All an Array's Items Using For Loops
localeTitle: يتكرر من خلال جميع عناصر المصفوفة عن طريق استخدام الحلقات
---
## يتكرر من خلال جميع عناصر المصفوفة عن طريق استخدام الحلقات
## تلميح 1
* ومتداخلة `for` حلقة يجب أن تستخدم للبحث من خلال كل عنصر في المصفوفة.
` for (let i = 0; i < arr.length; i++) {
`
\`
## تلميح 2
* يجب بعد ذلك مقارنة كل عنصر من الصفيف بمعلمة `elem` تم تمريرها من خلال الدالة `filteredArray()` .
`if (arr[i].indexOf(elem)==-1){
`
## تلميح 3
* إذا لم يتم العثور على تطابق ، فهذا `newArr` أن `newArr` تمت إضافته بالكامل. وظيفة `push()` مفيدة جدًا هنا.
`newArr.push(arr[i]);
`
* وبمجرد إضافة هذا `newArr` بأكمله إلى `newArr` ، تستمر الحلقة مع العنصر التالي.
## حل:
`function filteredArray(arr, elem) {
let newArr = [];
// change code below this line
for (let i = 0; i < arr.length; i++) {
if (arr[i].indexOf(elem)==-1){ //Checks every parameter for the element and if is NOT there continues the code
newArr.push(arr[i]); //Inserts the element of the array in the new filtered array
};
};
// change code above this line
return newArr;
};
// change code here to test different cases:
console.log(filteredArray([[3, 2, 3], [1, 6, 3], [3, 13, 26], [19, 3, 9]], 3));
`

View File

@@ -0,0 +1,43 @@
---
title: Modify an Array Stored in an Object
localeTitle: تعديل صفيف مخزنة في كائن
---
## تعديل صفيف مخزنة في كائن
### طريقة:
* يمكن كتابة الدالة في سطرين فقط من التعليمات البرمجية.
* يجب أن يستخدم السطر الأول الدالة `push()` لإضافة معلمة `friend` إلى الصفيف الموجود في `user.data.friend` . السطر الثاني سيعيد الصفيف المعدل.
* تذكر أن `user` mustb يمكن الرجوع إليها مع المعلمة الأولى المعطاة `addFriend()` .
### حل:
`let user = {
name: 'Kenneth',
age: 28,
data: {
username: 'kennethCodesAllDay',
joinDate: 'March 26, 2016',
organization: 'freeCodeCamp',
friends: [
'Sam',
'Kira',
'Tomo'
],
location: {
city: 'San Francisco',
state: 'CA',
country: 'USA'
}
}
};
function addFriend(userObj, friend) {
// change code below this line
userObj.data.friends.push(friend);
return userObj.data.friends;
// change code above this line
}
console.log(addFriend(user, 'Pete'));
`

View File

@@ -0,0 +1,43 @@
---
title: Modify an Object Nested Within an Object
localeTitle: تعديل كائن متداخل داخل كائن
---
## تعديل كائن متداخل داخل كائن
طريقة:
* تذكر أن الكائن الذي تريد تغييره هو مستويين عميقين ، ومن السهل استخدام `dot-notation` في هذه الحالة.
* ببساطة ، قم بتعريف الكائن ثم استخدم `dot-notation` للوصول إلى الكائن الثاني وأخيرًا العنصر الأخير الذي ترغب في تعديله.
## مثال:
`let myObject = {
level_1: 'outside',
first_level_object: {
level_2: '2 levels deep',
second_level_object: {
level_3: '3 levels deep'
}
}
};
//The following line of code will modify the data found in level_2.
myObject.first_level_object.level_2 = 'level-2 has been reached';
`
## حل:
`let userActivity = {
id: 23894201352,
date: 'January 1, 2017',
data: {
totalUsers: 51,
online: 42
}
};
// change code below this line
userActivity.data.online = 45;
// change code above this line
console.log(userActivity);
`

View File

@@ -0,0 +1,19 @@
---
title: Remove Items from an Array with pop() and shift()
localeTitle: إزالة العناصر من صفيف مع pop () و shift ()
---
## إزالة العناصر من صفيف مع pop () و shift ()
* و `.pop()` طريقة و `.shift()` يجب استدعاء الأسلوب وinitialised باستخدام `popped` و `shifted` المتغيرات للعودة الإجابة الصحيحة من وظيفة.
## حل:
`function popShift(arr) {
let popped = arr.pop();
let shifted = arr.shift();
return [shifted, popped];
}
// do not change code below this line
console.log(popShift(['challenge', 'is', 'not', 'complete']));
`

View File

@@ -0,0 +1,21 @@
---
title: Remove Items Using splice()
localeTitle: إزالة العناصر باستخدام لصق ()
---
## إزالة العناصر باستخدام لصق ()
* يجب استدعاء الدالة `splice()` على صفيف `arr` لإزالة عنصر واحد أو أكثر من مركز الصفيف.
* يضيف صفيف `arr` حاليا إلى قيمة 16. ببساطة إزالة العديد من المتغيرات اللازمة للعودة 10.
## حل:
`function sumOfTen(arr) {
// change code below this line
arr.splice(1,2);
// change code above this line
return arr.reduce((a, b) => a + b);
}
// do not change code below this line
console.log(sumOfTen([2, 5, 1, 5, 2, 1]));
`

View File

@@ -0,0 +1,27 @@
---
title: Use an Array to Store a Collection of Data
localeTitle: استخدم صفيف لتخزين مجموعة من البيانات
---
## استخدم صفيف لتخزين مجموعة من البيانات
### طريقة:
* في JS ، تعتبر Arrays واحدة من أكثر بنية البيانات شيوعًا. وعلى عكس اللغات الأخرى ، يمكن أن تقوم Arrays في JS بتخزين أنواع مختلفة من البيانات ويمكنها أيضًا تغيير حجمها في وقت التشغيل ، ومن ثم يشار إليها أيضًا باسم "Array" Dynamic Arrays. هم أيضا 0 مفهرسة.
* يمكن تهيئة المصفوفات بطرق مختلفة:
1. الصفيف الحرفي
2. مصممين صفيف
* في هذا التحدي سنركز على الصفيف الحرفي. لتهيئة مصفوفة نحن ببساطة `let arr = [];`
* يمكننا إضافة قيم إلى هذا الصفيف عن طريق الوصول إلى فهرسه ، مثال: `javascript let arr = []; arr[0] = "hello"; console.log(arr); // ["hello"]`
* يمكننا أيضًا تهيئة القيم في المصفوفة عندما نعلنها ، مثال: `javascript let arr = [1, 2, 3, "John"];`
* في هذا التحدي تحتاج إلى إنشاء مصفوفة تحتوي على 5 عناصر على الأقل وسلسلة واحدة على الأقل ، ورقم واحد ، وقيمة منطقية واحدة.
### حل:
` let yourArray = ["a", 2, true, "c", null, {name: "john"}];
`
### مصادر
مزيد من القراءة حول المصفوفات في [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) .

View File

@@ -0,0 +1,25 @@
---
title: Use the delete Keyword to Remove Object Properties
localeTitle: استخدم Delete keyword to Remove Object Properties
---
## استخدم Delete keyword to Remove Object Properties
يقدم [Developer.mozilla.org](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete) برنامجًا تعليميًا شاملاً حول مشغل الحذف.
### حل:
`let foods = {
apples: 25,
oranges: 32,
plums: 28,
bananas: 13,
grapes: 35,
strawberries: 27
};
// change code below this line
delete foods.oranges;
delete foods.plums;
delete foods.strawberries;
// change code above this line
console.log(foods);
`