fix: converted single to triple backticks3 (#36230)
This commit is contained in:
@ -38,34 +38,35 @@ for (let user in obj) {
|
||||
|
||||
### حل:
|
||||
|
||||
`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));
|
||||
`
|
||||
```javascript
|
||||
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));
|
||||
```
|
@ -8,5 +8,6 @@ localeTitle: الوصول إلى محتويات صفيف باستخدام تدر
|
||||
|
||||
## حل
|
||||
|
||||
`myArray[1] = "anything we want";
|
||||
`
|
||||
```javascript
|
||||
myArray[1] = "anything we want";
|
||||
```
|
@ -11,32 +11,34 @@ localeTitle: الوصول إلى خاصية الأسماء مع تدرج قوس
|
||||
|
||||
## مثال:
|
||||
|
||||
`let juice = {
|
||||
apple: 1.15,
|
||||
orange: 1.45
|
||||
};
|
||||
function checkInventory(scannedItem) {
|
||||
return juice[scannedItem];
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
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"));
|
||||
`
|
||||
```javascript
|
||||
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"));
|
||||
```
|
@ -8,14 +8,15 @@ localeTitle: إضافة عناصر إلى مصفوفة بدفع () و unshift ()
|
||||
|
||||
## حل:
|
||||
|
||||
`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']));
|
||||
`
|
||||
```javascript
|
||||
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']));
|
||||
```
|
@ -20,13 +20,14 @@ localeTitle: إضافة عناصر باستخدام لصق ()
|
||||
|
||||
## حل:
|
||||
|
||||
`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']));
|
||||
`
|
||||
```javascript
|
||||
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']));
|
||||
```
|
@ -6,22 +6,24 @@ localeTitle: إضافة أزواج Key-Value إلى كائنات JavaScript
|
||||
|
||||
* وقد أعلن بالفعل كائن الأطعمة. كل ما تبقى القيام به هو إضافة ثلاث `key-values` جديدة.
|
||||
|
||||
`OBJECT[{KEY}] = {VALUE}
|
||||
`
|
||||
```javascript
|
||||
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);
|
||||
`
|
||||
```javascript
|
||||
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);
|
||||
```
|
@ -10,21 +10,23 @@ localeTitle: التحقق من وجود عنصر مع indexOf ()
|
||||
|
||||
## حل 1:
|
||||
|
||||
`function quickCheck(arr, elem) {
|
||||
if(arr.indexOf(elem)>=0) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
console.log(quickCheck(['squash', 'onions', 'shallots'], 'mushrooms'));
|
||||
`
|
||||
```javascript
|
||||
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'));
|
||||
`
|
||||
```javascript
|
||||
function quickCheck(arr, elem) {
|
||||
return arr.indexOf(elem) >= 0 ? true : false;
|
||||
}
|
||||
console.log(quickCheck(['squash', 'onions', 'shallots'], 'mushrooms'));
|
||||
```
|
@ -13,40 +13,42 @@ localeTitle: تحقق مما إذا كان الكائن يحتوي على خاص
|
||||
|
||||
### حل 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));
|
||||
`
|
||||
```javascript
|
||||
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;
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
function isEveryoneHere(obj) {
|
||||
return (users.hasOwnProperty('Alan','Jeff','Sarah','Ryan')) ? true : false;
|
||||
}
|
||||
```
|
@ -8,12 +8,13 @@ localeTitle: الجمع بين المصفوفات مع المشغل انتشار
|
||||
|
||||
## حل:
|
||||
|
||||
`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());
|
||||
`
|
||||
```javascript
|
||||
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());
|
||||
```
|
@ -17,11 +17,12 @@ localeTitle: نسخ صفيف العناصر باستخدام شريحة ()
|
||||
|
||||
## حل:
|
||||
|
||||
`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']));
|
||||
`
|
||||
```javascript
|
||||
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']));
|
||||
```
|
@ -6,20 +6,22 @@ localeTitle: إنشاء صفائف معقدة متعددة الأبعاد
|
||||
|
||||
* يجب أن تدرج السلسلة الأولى - `deep` - ثلاثة مستويات عميقة. هذا يعني ضمن ثلاث مجموعات بالضبط من `[square-brackets]` .
|
||||
|
||||
`let threeLevelArray = ["first level", ["Two levels deep", ["Three levels deep"]]];
|
||||
`
|
||||
```javascript
|
||||
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
|
||||
];
|
||||
`
|
||||
```javascript
|
||||
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
|
||||
];
|
||||
```
|
@ -11,30 +11,31 @@ localeTitle: إنشاء صفيف من كافة مفاتيح الكائنات م
|
||||
|
||||
### حل:
|
||||
|
||||
`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));
|
||||
`
|
||||
```javascript
|
||||
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));
|
||||
```
|
@ -17,15 +17,17 @@ localeTitle: يتكرر من خلال جميع عناصر المصفوفة عن
|
||||
|
||||
* يجب بعد ذلك مقارنة كل عنصر من الصفيف بمعلمة `elem` تم تمريرها من خلال الدالة `filteredArray()` .
|
||||
|
||||
`if (arr[i].indexOf(elem)==-1){
|
||||
`
|
||||
```javascript
|
||||
if (arr[i].indexOf(elem)==-1){
|
||||
```
|
||||
|
||||
## تلميح 3
|
||||
|
||||
* إذا لم يتم العثور على تطابق ، فهذا `newArr` أن `newArr` تمت إضافته بالكامل. وظيفة `push()` مفيدة جدًا هنا.
|
||||
|
||||
`newArr.push(arr[i]);
|
||||
`
|
||||
```javascript
|
||||
newArr.push(arr[i]);
|
||||
```
|
||||
|
||||
* وبمجرد إضافة هذا `newArr` بأكمله إلى `newArr` ، تستمر الحلقة مع العنصر التالي.
|
||||
|
||||
|
@ -11,33 +11,35 @@ localeTitle: تعديل كائن متداخل داخل كائن
|
||||
|
||||
## مثال:
|
||||
|
||||
`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';
|
||||
`
|
||||
```javascript
|
||||
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);
|
||||
`
|
||||
```javascript
|
||||
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);
|
||||
```
|
@ -8,12 +8,13 @@ localeTitle: إزالة العناصر من صفيف مع pop () و shift ()
|
||||
|
||||
## حل:
|
||||
|
||||
`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']));
|
||||
`
|
||||
```javascript
|
||||
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']));
|
||||
```
|
@ -9,13 +9,14 @@ localeTitle: إزالة العناصر باستخدام لصق ()
|
||||
|
||||
## حل:
|
||||
|
||||
`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]));
|
||||
`
|
||||
```javascript
|
||||
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]));
|
||||
```
|
@ -8,18 +8,19 @@ localeTitle: استخدم Delete keyword to Remove Object Properties
|
||||
|
||||
### حل:
|
||||
|
||||
`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);
|
||||
`
|
||||
```javascript
|
||||
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);
|
||||
```
|
@ -6,11 +6,12 @@ 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
|
||||
`
|
||||
```javascript
|
||||
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.
|
@ -6,8 +6,9 @@ localeTitle: الوصول إلى صفائف متعددة الأبعاد مع ف
|
||||
|
||||
النظر في مجموعة متعددة الأبعاد التالية:
|
||||
|
||||
`var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]];
|
||||
`
|
||||
```javascript
|
||||
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]];
|
||||
```
|
||||
|
||||
هذا ما يبدو في شكل جداول.
|
||||
|
||||
@ -15,12 +16,14 @@ localeTitle: الوصول إلى صفائف متعددة الأبعاد مع ف
|
||||
|
||||
الآن كل ما عليك فعله هو اختيار إحداثيات البيانات التي تريدها! للحصول على أمثلة ، إذا أردنا أن تساوي `myNum` 8 ، إذن ...
|
||||
|
||||
`var myNum = arr[2][1]; // Equal to 8
|
||||
`
|
||||
```javascript
|
||||
var myNum = arr[2][1]; // Equal to 8
|
||||
```
|
||||
|
||||
أو ، إذا كنت تريد أن تساوي 1. عليك ...
|
||||
|
||||
`var myNum = arr[0][0]; // Equal to 1
|
||||
`
|
||||
```javascript
|
||||
var myNum = arr[0][0]; // Equal to 1
|
||||
```
|
||||
|
||||
تبدأ أولاً باختيار العمود الموجود فيه ، ثم تختار الصف. انها نوع من مثل الطائرة تنسيق XY!
|
@ -16,26 +16,27 @@ localeTitle: الوصول إلى صفائف متداخلة
|
||||
|
||||
### الوصول إلى الكائنات داخل المصفوفات باستخدام 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'
|
||||
`
|
||||
```js
|
||||
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'
|
||||
```
|
||||
|
||||
## حل:
|
||||
|
||||
|
@ -8,18 +8,19 @@ localeTitle: الوصول إلى الكائنات المتداخلة
|
||||
|
||||
إذا نظرنا إلى هدفنا:
|
||||
|
||||
`var myStorage = {
|
||||
"car": {
|
||||
"inside": {
|
||||
"glove box": "maps",
|
||||
"passenger seat": "crumbs"
|
||||
},
|
||||
"outside": {
|
||||
"trunk": "jack"
|
||||
}
|
||||
}
|
||||
};
|
||||
`
|
||||
```javascript
|
||||
var myStorage = {
|
||||
"car": {
|
||||
"inside": {
|
||||
"glove box": "maps",
|
||||
"passenger seat": "crumbs"
|
||||
},
|
||||
"outside": {
|
||||
"trunk": "jack"
|
||||
}
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
اسم هدفنا هو `myStorage` .
|
||||
|
||||
@ -29,20 +30,22 @@ localeTitle: الوصول إلى الكائنات المتداخلة
|
||||
|
||||
يمكنك تصور بنية الكائن مثل هذا ، إذا كانت تساعد:
|
||||
|
||||
`myStorage
|
||||
|-- car
|
||||
|--- inside
|
||||
|----- glove box: maps
|
||||
|----- passenger seat: crumbs
|
||||
|--- outside
|
||||
|----- trunk: jack
|
||||
`
|
||||
```
|
||||
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'
|
||||
`
|
||||
```javascript
|
||||
var gloveBoxContents = myStorage.car.inside'complete here'
|
||||
```
|
||||
|
||||
يجب عليك استبدال `complete here` بالطريقة الصحيحة للوصول إلى الخاصية. انظر فكرة أعلاه إذا واجهتك مشكلة.
|
@ -6,14 +6,15 @@ 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
|
||||
`
|
||||
```js
|
||||
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
|
||||
```
|
@ -6,14 +6,15 @@ localeTitle: الوصول إلى خصائص كائن مع ترميز 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
|
||||
`
|
||||
```js
|
||||
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
|
||||
```
|
@ -6,15 +6,16 @@ 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
|
||||
`
|
||||
```js
|
||||
// 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
|
||||
```
|
@ -6,25 +6,27 @@ localeTitle: أضف خصائص جديدة إلى كائن JavaScript
|
||||
|
||||
هنا هو المثال:
|
||||
|
||||
`var ourDog = {
|
||||
"name": "Camper",
|
||||
"legs": 4,
|
||||
"tails": 1,
|
||||
"friends": ["everything!"]
|
||||
};
|
||||
|
||||
ourDog.bark = "bow-wow";
|
||||
`
|
||||
```js
|
||||
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";
|
||||
`
|
||||
```js
|
||||
var myDog = {
|
||||
"name": "Happy Coder",
|
||||
"legs": 4,
|
||||
"tails": 1,
|
||||
"friends": ["freeCodeCamp Campers"]
|
||||
};
|
||||
|
||||
// Only change code below this line.
|
||||
myDog.bark = "woof";
|
||||
```
|
@ -8,5 +8,6 @@ localeTitle: التنازل مع القيمة المرتجعة
|
||||
|
||||
هنا هو الحل الأساسي رمز:
|
||||
|
||||
`processed = processArg(7); // Equal to 2
|
||||
`
|
||||
```javascript
|
||||
processed = processArg(7); // Equal to 2
|
||||
```
|
@ -30,26 +30,27 @@ _`num < 5` - عودة "صغيرة" `num < 10` - عودة "صغير" `num < 15` -
|
||||
|
||||
## حل:
|
||||
|
||||
`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
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
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
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### تفسير الشفرة
|
||||
|
@ -20,15 +20,16 @@ _أضف عامل المساواة إلى الخط المحدد بحيث تقوم
|
||||
|
||||
## حل الرمز الأساسي:
|
||||
|
||||
`function testEqual(val) {
|
||||
if (val == 12) { // Change this line
|
||||
return "Equal";
|
||||
}
|
||||
return "Not equal";
|
||||
}
|
||||
// Change this value to test
|
||||
testEqual(10);
|
||||
`
|
||||
```javascript
|
||||
function testEqual(val) {
|
||||
if (val == 12) { // Change this line
|
||||
return "Equal";
|
||||
}
|
||||
return "Not equal";
|
||||
}
|
||||
// Change this value to test
|
||||
testEqual(10);
|
||||
```
|
||||
|
||||
|
||||
### تفسير الشفرة
|
||||
|
@ -24,17 +24,18 @@ localeTitle: مقارنة مع مشغل المساواة الصارمة
|
||||
|
||||
## حل الرمز الأساسي:
|
||||
|
||||
`// Setup
|
||||
function testStrict(val) {
|
||||
if (val === 7) { // Change this line
|
||||
return "Equal";
|
||||
}
|
||||
return "Not equal";
|
||||
}
|
||||
|
||||
// Change this value to test
|
||||
testStrict(10);
|
||||
`
|
||||
```javascript
|
||||
// Setup
|
||||
function testStrict(val) {
|
||||
if (val === 7) { // Change this line
|
||||
return "Equal";
|
||||
}
|
||||
return "Not equal";
|
||||
}
|
||||
|
||||
// Change this value to test
|
||||
testStrict(10);
|
||||
```
|
||||
|
||||
### تفسير الشفرة
|
||||
|
||||
|
@ -20,16 +20,17 @@ localeTitle: مقارنة مع مشغل عدم المساواة الصارم
|
||||
|
||||
## حل الرمز الأساسي:
|
||||
|
||||
`function testStrictNotEqual(val) {
|
||||
if (val !== 17) {
|
||||
return "Not equal";
|
||||
}
|
||||
return "Equal";
|
||||
}
|
||||
|
||||
// Change this value to test
|
||||
testStrictNotEqual(10);
|
||||
`
|
||||
```javascript
|
||||
function testStrictNotEqual(val) {
|
||||
if (val !== 17) {
|
||||
return "Not equal";
|
||||
}
|
||||
return "Equal";
|
||||
}
|
||||
|
||||
// Change this value to test
|
||||
testStrictNotEqual(10);
|
||||
```
|
||||
|
||||
### تفسير الشفرة
|
||||
|
||||
|
@ -26,20 +26,21 @@ localeTitle: مقارنات مع عامل التشغيل && (المنطقية AN
|
||||
|
||||
## حل الرمز الأساسي:
|
||||
|
||||
`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);
|
||||
`
|
||||
```javascript
|
||||
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);
|
||||
```
|
||||
|
||||
|
||||
### تفسير الشفرة
|
||||
|
@ -10,9 +10,10 @@ localeTitle: مقارنات مع المنطقي أو المشغل
|
||||
|
||||
أدناه هو نموذج التعليمة البرمجية (أبسط طريقة).
|
||||
|
||||
`if ( val < 10 || val > 20 ) {
|
||||
return "Outside";
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
if ( val < 10 || val > 20 ) {
|
||||
return "Outside";
|
||||
}
|
||||
```
|
||||
|
||||
سيعود الرمز أعلاه "خارجي" فقط إذا كان `val` يتراوح بين 10 و 20 (ضمناً).
|
@ -6,18 +6,19 @@ localeTitle: عد إلى الخلف مع ل حلقة
|
||||
|
||||
هنا هو المثال:
|
||||
|
||||
`// Example
|
||||
var ourArray = [];
|
||||
|
||||
for (var i = 10; i > 0; i -= 2) {
|
||||
ourArray.push(i);
|
||||
}
|
||||
|
||||
// Setup
|
||||
var myArray = [];
|
||||
|
||||
// Only change code below this line.
|
||||
`
|
||||
```javascript
|
||||
// Example
|
||||
var ourArray = [];
|
||||
|
||||
for (var i = 10; i > 0; i -= 2) {
|
||||
ourArray.push(i);
|
||||
}
|
||||
|
||||
// Setup
|
||||
var myArray = [];
|
||||
|
||||
// Only change code below this line.
|
||||
```
|
||||
|
||||
#### تلميح: 1
|
||||
|
||||
@ -29,17 +30,18 @@ localeTitle: عد إلى الخلف مع ل حلقة
|
||||
|
||||
# تحذير 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)
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
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)
|
||||
}
|
||||
```
|
@ -105,18 +105,19 @@ localeTitle: عد بطاقات
|
||||
|
||||
## حل رمز إضافي:
|
||||
|
||||
`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
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
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
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### تفسير الشفرة
|
||||
|
@ -10,25 +10,26 @@ localeTitle: حذف الخصائص من كائن JavaScript
|
||||
|
||||
# تحذير 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;
|
||||
`
|
||||
```javascript
|
||||
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;
|
||||
```
|
@ -10,8 +10,9 @@ 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.';
|
||||
`
|
||||
```javascript
|
||||
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.';
|
||||
```
|
@ -14,25 +14,27 @@ localeTitle: النطاق العالمي والوظائف
|
||||
|
||||
عند إضافة `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)
|
||||
}
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
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
|
||||
}
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
num1 = 18; // Global scope
|
||||
function fun() {
|
||||
num2 = 20; // Global Scope
|
||||
if (true) {
|
||||
num3 = 22; // Global Scope
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
حسنًا ، إليك حل الشفرة الأساسية.
|
||||
|
||||
|
@ -8,14 +8,15 @@ localeTitle: نطاق عالمي مقابل نطاق محلي في الوظائ
|
||||
|
||||
في هذا التمرين ، يكون لديك متغير `outerWear` في النطاق العالمي باستخدام "T-shirt" باعتباره قيمته. يجب عليك الآن إنشاء متغير آخر يسمى `outerWear` ، ولكن هذه المرة داخل الدالة `myOutfit()` . الحل الأساسي رمز كما يلي:
|
||||
|
||||
`var outerWear = "T-shirt";
|
||||
|
||||
function myOutfit() {
|
||||
var outerWear = "sweater";
|
||||
return outerWear;
|
||||
}
|
||||
|
||||
myOutfit();
|
||||
`
|
||||
```javascript
|
||||
var outerWear = "T-shirt";
|
||||
|
||||
function myOutfit() {
|
||||
var outerWear = "sweater";
|
||||
return outerWear;
|
||||
}
|
||||
|
||||
myOutfit();
|
||||
```
|
||||
|
||||
ستقوم الدالة بإرجاع أقرب `outerWear` يمكن العثور عليه. منذ أن أنشأنا `outerWear` داخل الدالة ، وهذا هو "الأقرب" ، وبالتالي فإن الدالة ستعود "سترة".
|
@ -82,34 +82,35 @@ par + 2 | "بوجيه مزدوج" > = 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);
|
||||
`
|
||||
```javascript
|
||||
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);
|
||||
```
|
||||
|
||||
|
||||
\## شرح الكود نظرًا لأن لدينا بالفعل صفيفًا محددًا في `names` المتغيرات ، فيمكننا الاستفادة منه واستخدامه في عبارات الإرجاع باستخدام الفهارس (على سبيل المثال: `names[0] is the first one` ). بهذه الطريقة ، إذا احتجت في أي وقت إلى تغيير نتيجة معينة فلن تحتاج إلى البحث عنها داخل الوظيفة ، فستكون في البداية ، في الصفيف الخاص بك.
|
||||
|
@ -6,17 +6,18 @@ localeTitle: تكرار الأرقام الفردية مع ل حلقة
|
||||
|
||||
هنا هو المثال:
|
||||
|
||||
`var ourArray = [];
|
||||
|
||||
for (var i = 0; i < 10; i += 2) {
|
||||
ourArray.push(i);
|
||||
}
|
||||
|
||||
// Setup
|
||||
var myArray = [];
|
||||
|
||||
// Only change code below this line.
|
||||
`
|
||||
```javascript
|
||||
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` حلقة. تحتاج إلى نسخ حلقة من الجزء العلوي:
|
||||
|
||||
|
@ -8,11 +8,12 @@ localeTitle: تكرار مع JavaScript Do ... While Loops
|
||||
|
||||
## حل
|
||||
|
||||
`var myArray = [];
|
||||
var i = 10;
|
||||
|
||||
do {
|
||||
myArray.push(i);
|
||||
i++;
|
||||
} while(i <= 10);
|
||||
`
|
||||
```javascript
|
||||
var myArray = [];
|
||||
var i = 10;
|
||||
|
||||
do {
|
||||
myArray.push(i);
|
||||
i++;
|
||||
} while(i <= 10);
|
||||
```
|
@ -6,31 +6,34 @@ localeTitle: تكررت مع جافا سكريبت في حين الحلقات
|
||||
|
||||
بينما سيتم تشغيل حلقات طالما أن الشرط الموجود داخل () صحيح. مثال:
|
||||
|
||||
`while(condition){
|
||||
code...
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
while(condition){
|
||||
code...
|
||||
}
|
||||
```
|
||||
|
||||
## تلميح 1:
|
||||
|
||||
استخدم متغير مكرر مثل i في حالتك
|
||||
|
||||
`var i = 0;
|
||||
while(i <= 4){
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
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++;
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
// Setup
|
||||
var myArray = [];
|
||||
|
||||
// Only change code below this line.
|
||||
var i = 0;
|
||||
while (i <= 4){
|
||||
myArray.push(i);
|
||||
i++;
|
||||
}
|
||||
```
|
@ -8,11 +8,12 @@ localeTitle: النطاق المحلي والوظائف
|
||||
|
||||
فيما يلي الحل الأساسي للتعليمات البرمجية لإنشاء متغير `myVar` محلي.
|
||||
|
||||
`function myLocalScope() {
|
||||
var myVar;
|
||||
console.log(myVar);
|
||||
}
|
||||
myLocalScope();
|
||||
`
|
||||
```javascript
|
||||
function myLocalScope() {
|
||||
var myVar;
|
||||
console.log(myVar);
|
||||
}
|
||||
myLocalScope();
|
||||
```
|
||||
|
||||
المتغير موجود فقط في الوظيفة. خارج الوظيفة ، هو غير موجود.
|
@ -14,10 +14,11 @@ localeTitle: التعامل مع صفائف مع البوب ()
|
||||
|
||||
## المفسد! حل الرمز:
|
||||
|
||||
`var removedFromMyArray = myArray.pop();
|
||||
=======
|
||||
Remove the last element of an array with the pop() method, like so:
|
||||
`
|
||||
```javascript
|
||||
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
|
||||
|
||||
|
@ -6,6 +6,7 @@ localeTitle: التعامل مع صفائف بدفع ()
|
||||
|
||||
تسمح لك طريقة `push()` بإلحاق (إضافة إلى النهاية) عنصر إلى مصفوفة. مثل ذلك…
|
||||
|
||||
`var arr = [1, 2, 3, 4];
|
||||
arr.push(5); // Now, the array is [1, 2, 3, 4, 5]
|
||||
`
|
||||
```javascript
|
||||
var arr = [1, 2, 3, 4];
|
||||
arr.push(5); // Now, the array is [1, 2, 3, 4, 5]
|
||||
```
|
@ -6,6 +6,7 @@ localeTitle: التعامل مع صفائف مع shift ()
|
||||
|
||||
بينما تم استخدام `pop()` للتخلص من العنصر الأخير من صفيف ، يتم استخدام `shift()` للتخلص من العنصر الأول. إنها تشبه أنك تقوم بتحويل العناصر إلى موضع واحد. تحقق من هذا:
|
||||
|
||||
`var arr = [1, 2, 3, 4, 5];
|
||||
arr.shift(); // Gets rid of the 1
|
||||
`
|
||||
```javascript
|
||||
var arr = [1, 2, 3, 4, 5];
|
||||
arr.shift(); // Gets rid of the 1
|
||||
```
|
@ -6,6 +6,7 @@ localeTitle: معالجة صفائف مع unshift ()
|
||||
|
||||
بينما `push()` إضافة عناصر إلى الجزء الخلفي من المصفوفة ، يضيف `unshift()` إلى الأمام. كل ما عليك القيام به هو:
|
||||
|
||||
`var arr = [2, 3, 4, 5];
|
||||
arr.unshift(1); // Now, the array has 1 in the front
|
||||
`
|
||||
```javascript
|
||||
var arr = [2, 3, 4, 5];
|
||||
arr.unshift(1); // Now, the array has 1 in the front
|
||||
```
|
@ -6,21 +6,22 @@ localeTitle: معالجة الكائنات المعقدة
|
||||
|
||||
هنا هو المثال:
|
||||
|
||||
`var myMusic = [
|
||||
{
|
||||
"artist": "Billy Joel",
|
||||
"title": "Piano Man",
|
||||
"release_year": 1973,
|
||||
"formats": [
|
||||
"CD",
|
||||
"8T",
|
||||
"LP"
|
||||
],
|
||||
"gold": true
|
||||
}
|
||||
// Add record here
|
||||
];
|
||||
`
|
||||
```javascript
|
||||
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 }`
|
||||
|
||||
|
@ -8,16 +8,17 @@ localeTitle: خيارات متعددة مماثلة في بيانات التبد
|
||||
|
||||
_إذا تم حذف بيان الفاصل من حالة عبارة التبديل ، يتم تنفيذ العبارة (الحالات) التالية إلى أن تتم مصادفة فاصل. إذا كان لديك مدخلات متعددة بنفس المخرجات ، فيمكنك تمثيلها في بيان تبديل مثل هذا:_
|
||||
|
||||
`switch(val) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
result = "1, 2, or 3";
|
||||
break;
|
||||
case 4:
|
||||
result = "4 alone";
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
switch(val) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
result = "1, 2, or 3";
|
||||
break;
|
||||
case 4:
|
||||
result = "4 alone";
|
||||
}
|
||||
```
|
||||
|
||||
_الحالات 1 و 2 و 3 ستنتج نفس النتيجة._
|
||||
|
||||
|
@ -6,7 +6,8 @@ localeTitle: عش صف واحد داخل صفيف آخر
|
||||
|
||||
المصفوفات هي أحادية البعد؛ هذا يعني أنه يتم تخزين صف واحد فقط من البيانات. ولكن يمكنك إنشاء صفيف متعدد الأبعاد عن طريق وضع المصفوفات داخل المصفوفات! مثل ذلك:
|
||||
|
||||
`var arr = [["Two-dimensional", 2], ["Two rows", 12]];
|
||||
`
|
||||
```javascript
|
||||
var arr = [["Two-dimensional", 2], ["Two rows", 12]];
|
||||
```
|
||||
|
||||
الصفيف أعلاه له بعدان.
|
@ -12,15 +12,16 @@ localeTitle: التعشيش للحلقات
|
||||
|
||||
هنا مثال:
|
||||
|
||||
`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]);
|
||||
}
|
||||
}
|
||||
`
|
||||
```
|
||||
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\] هو نفسه مصفوفة.
|
||||
|
||||
@ -57,21 +58,22 @@ _تنبيه المفسد!_  {
|
||||
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]]);
|
||||
`
|
||||
```
|
||||
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/)**
|
||||
|
||||
|
@ -6,13 +6,15 @@ localeTitle: تمرير القيم إلى دالات مع الوسيطات
|
||||
|
||||
مهمتنا هي إنشاء وظيفة لديها **معلمات** . هذه هي المدخلات التي تحدد إخراج الدالة. تضع المتابعين داخل `()` ، مثل:
|
||||
|
||||
`function functionWithArgs(one, two) {
|
||||
console.log(one + two);
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
function functionWithArgs(one, two) {
|
||||
console.log(one + two);
|
||||
}
|
||||
```
|
||||
|
||||
لدينا الآن لإضافة رمز داخل الأقواس. مهمتنا هي إضافة `one` `two` ، وطباعة المجموع إلى وحدة التحكم. هنا هو الحل الأساسي رمز:
|
||||
|
||||
`functionWithArgs(7, 3);
|
||||
//This will console log 10.
|
||||
`
|
||||
```javascript
|
||||
functionWithArgs(7, 3);
|
||||
//This will console log 10.
|
||||
```
|
@ -6,7 +6,8 @@ localeTitle: إرجاع قيمة من دالة مع العودة
|
||||
|
||||
باستخدام `return` ، يمكنك جعل بيانات الإخراج الوظائف. هنا هو الحل الأساسي رمز:
|
||||
|
||||
`function timesFive(num) {
|
||||
return num * 5;
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
function timesFive(num) {
|
||||
return num * 5;
|
||||
}
|
||||
```
|
@ -10,13 +10,14 @@ localeTitle: إرجاع القيم المنطقية من الدالات
|
||||
|
||||
_فيكس وظيفة هو `isLess` من إزالة العبارة `if...else` ._
|
||||
|
||||
`// Fix this code
|
||||
if (a < b) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
`
|
||||
```js
|
||||
// Fix this code
|
||||
if (a < b) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
```
|
||||
|
||||
#### تلميح 1
|
||||
|
||||
@ -36,13 +37,14 @@ _فيكس وظيفة هو `isLess` من إزالة العبارة `if...else` ._
|
||||
|
||||
## حل الرمز:
|
||||
|
||||
`function isLess(a, b) {
|
||||
// Fix this code
|
||||
return a <= b;
|
||||
}
|
||||
// Change these values to test
|
||||
isLess(10, 15);
|
||||
`
|
||||
```javascript
|
||||
function isLess(a, b) {
|
||||
// Fix this code
|
||||
return a <= b;
|
||||
}
|
||||
// Change these values to test
|
||||
isLess(10, 15);
|
||||
```
|
||||
|
||||
|
||||
### مصادر
|
||||
|
@ -6,8 +6,9 @@ localeTitle: تخزين قيم متعددة في متغير واحد باستخ
|
||||
|
||||
تسمح لك المصفوفات بتخزين الكثير من البيانات المختلفة ، ضمن متغير واحد. كل ما عليك القيام به هو وضع البيانات في الصفيف ، مفصولة بفواصل. مثل ذلك…
|
||||
|
||||
`var arr = ["Code for change", 123];
|
||||
`
|
||||
```javascript
|
||||
var arr = ["Code for change", 123];
|
||||
```
|
||||
|
||||
تذكر ، يتم تعريف صفيف كصف من الأشياء. أنت تخزن بيانات مختلفة في "صف" مفرد (متغير).
|
||||
|
||||
|
@ -27,13 +27,14 @@ localeTitle: اختبار كائنات للعقارات
|
||||
|
||||
نحن لا نغير أي شيء هنا:
|
||||
|
||||
`// Setup
|
||||
var myObj = {
|
||||
gift: "pony",
|
||||
pet: "kitten",
|
||||
bed: "sleigh"
|
||||
};
|
||||
`
|
||||
```javascript
|
||||
// Setup
|
||||
var myObj = {
|
||||
gift: "pony",
|
||||
pet: "kitten",
|
||||
bed: "sleigh"
|
||||
};
|
||||
```
|
||||
|
||||
كذلك ، في الجسم من الدالة التي نستخدمها. `.hasOwnProperty(propname)` للكائنات لتحديد ما إذا كان هذا الكائن لديه اسم خاصية معينة. `if/else` العبارة `if/else` ذات القيم المنطقية ستساعدنا في هذا:
|
||||
|
||||
|
@ -20,15 +20,16 @@ localeTitle: فهم القيم المنطقية
|
||||
|
||||
##  حل الرمز الأساسي:
|
||||
|
||||
`function welcomeToBooleans() {
|
||||
|
||||
// Only change code below this line.
|
||||
|
||||
return true; // Change this line
|
||||
|
||||
// Only change code above this line.
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
function welcomeToBooleans() {
|
||||
|
||||
// Only change code below this line.
|
||||
|
||||
return true; // Change this line
|
||||
|
||||
// Only change code above this line.
|
||||
}
|
||||
```
|
||||
|
||||
### تفسير الشفرة
|
||||
|
||||
|
@ -8,12 +8,14 @@ localeTitle: فهم قيمة غير محددة عاد من وظيفة
|
||||
|
||||
المضي قدما وتحديد `addFive()` مثل ذلك ...
|
||||
|
||||
`function addFive() {
|
||||
sum += 5;
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
function addFive() {
|
||||
sum += 5;
|
||||
}
|
||||
```
|
||||
|
||||
كما ترى ، يتم إضافة `sum` ب 5 بدون مشاكل ، ولكن بما أنه لا يوجد بيان إرجاع ، فهناك مخرجات `undefined` .
|
||||
|
||||
`var result = addFive(); // This is undefined
|
||||
`
|
||||
```javascript
|
||||
var result = addFive(); // This is undefined
|
||||
```
|
@ -12,15 +12,16 @@ localeTitle: تحديث خصائص الكائن
|
||||
|
||||
## حل:
|
||||
|
||||
`// Setup
|
||||
var myDog = {
|
||||
"name": "Coder",
|
||||
"legs": 4,
|
||||
"tails": 1,
|
||||
"friends": ["freeCodeCamp Campers"]
|
||||
};
|
||||
|
||||
// Only change code below this line.
|
||||
|
||||
myDog.name = "Happy Coder"; // Solution
|
||||
`
|
||||
```javascript
|
||||
// Setup
|
||||
var myDog = {
|
||||
"name": "Coder",
|
||||
"legs": 4,
|
||||
"tails": 1,
|
||||
"friends": ["freeCodeCamp Campers"]
|
||||
};
|
||||
|
||||
// Only change code below this line.
|
||||
|
||||
myDog.name = "Happy Coder"; // Solution
|
||||
```
|
@ -10,9 +10,10 @@ localeTitle: استخدم المشغل الشرطي (الثالوثي)
|
||||
|
||||
### تحذير حل قدما!
|
||||
|
||||
`function checkEqual(a, b) {
|
||||
return (a = b ? true : false );
|
||||
}
|
||||
|
||||
checkEqual(1, 2);
|
||||
`
|
||||
```javascript
|
||||
function checkEqual(a, b) {
|
||||
return (a = b ? true : false );
|
||||
}
|
||||
|
||||
checkEqual(1, 2);
|
||||
```
|
@ -6,44 +6,46 @@ localeTitle: استخدام كائنات لعمليات البحث
|
||||
|
||||
هنا هو المثال:
|
||||
|
||||
`// Setup
|
||||
function phoneticLookup(val) {
|
||||
var result = "";
|
||||
|
||||
// Only change code below this line
|
||||
switch(val) {
|
||||
case "alpha":
|
||||
result = "Adams";
|
||||
break;
|
||||
case "bravo":
|
||||
result = "Boston";
|
||||
break;
|
||||
case "charlie":
|
||||
result = "Chicago";
|
||||
break;
|
||||
case "delta":
|
||||
result = "Denver";
|
||||
break;
|
||||
case "echo":
|
||||
result = "Easy";
|
||||
break;
|
||||
case "foxtrot":
|
||||
result = "Frank";
|
||||
}
|
||||
|
||||
// Only change code above this line
|
||||
return result;
|
||||
}
|
||||
|
||||
// Change this value to test
|
||||
phoneticLookup("charlie");
|
||||
`
|
||||
```javascript
|
||||
// Setup
|
||||
function phoneticLookup(val) {
|
||||
var result = "";
|
||||
|
||||
// Only change code below this line
|
||||
switch(val) {
|
||||
case "alpha":
|
||||
result = "Adams";
|
||||
break;
|
||||
case "bravo":
|
||||
result = "Boston";
|
||||
break;
|
||||
case "charlie":
|
||||
result = "Chicago";
|
||||
break;
|
||||
case "delta":
|
||||
result = "Denver";
|
||||
break;
|
||||
case "echo":
|
||||
result = "Easy";
|
||||
break;
|
||||
case "foxtrot":
|
||||
result = "Frank";
|
||||
}
|
||||
|
||||
// Only change code above this line
|
||||
return result;
|
||||
}
|
||||
|
||||
// Change this value to test
|
||||
phoneticLookup("charlie");
|
||||
```
|
||||
|
||||
وإليك الحل: نحن لا نغير أي شيء هنا:
|
||||
|
||||
`function phoneticLookup(val) {
|
||||
var result = "";
|
||||
`
|
||||
```javascript
|
||||
function phoneticLookup(val) {
|
||||
var result = "";
|
||||
```
|
||||
|
||||
نحن بحاجة إلى تحويل بيان التبديل إلى كائن. نقل كل قيم `case` إلى خصائص الكائن:
|
||||
|
||||
|
@ -8,12 +8,14 @@ localeTitle: اكتب Reusable JavaScript مع الوظائف
|
||||
|
||||
تبدأ من خلال استخدام الكلمة `function` ، ثم كتابة اسم الدالة (الذي يتبع تنسيق حالة الجمل). ثم ، اكتب `()` ، وإنشاء الأقواس `{}` . مثل ذلك:
|
||||
|
||||
`function reusableFunction() {}
|
||||
`
|
||||
```javascript
|
||||
function reusableFunction() {}
|
||||
```
|
||||
|
||||
الآن ، أصبحت الدالة جاهزة لكتابتها. استخدم `console.log()` لطباعة رسالة في وحدة التحكم. الحل الأساسي رمز كما يلي:
|
||||
|
||||
`function reusableFunction() {
|
||||
console.log("Hi World");
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
function reusableFunction() {
|
||||
console.log("Hi World");
|
||||
}
|
||||
```
|
@ -4,10 +4,11 @@ localeTitle: Catch Arguments Passed in the Wrong Order When Calling a Function
|
||||
---
|
||||
## Catch Arguments Passed in the Wrong Order When Calling a Function
|
||||
|
||||
`function raiseToPower(b, e) {
|
||||
return Math.pow(b, e);
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
function raiseToPower(b, e) {
|
||||
return Math.pow(b, e);
|
||||
}
|
||||
```
|
||||
|
||||
* تستخدم الوظيفة المذكورة أعلاه لرفع العدد الأساسي `b` إلى قوة الأس `e` .
|
||||
* يجب استدعاء الدالة على وجه التحديد مع المتغيرات بالترتيب الصحيح. وبخلاف ذلك ، تقوم الوظيفة بخلط كلا المتغيرين وإرجاع إجابة غير مرغوبة.
|
||||
@ -15,5 +16,6 @@ localeTitle: Catch Arguments Passed in the Wrong Order When Calling a Function
|
||||
|
||||
## حل:
|
||||
|
||||
`let power = raiseToPower(base, exp);
|
||||
`
|
||||
```javascript
|
||||
let power = raiseToPower(base, exp);
|
||||
```
|
@ -9,7 +9,8 @@ localeTitle: قبض على الاستخدام المختلط من أسعار م
|
||||
|
||||
## حل:
|
||||
|
||||
`//Solution1:
|
||||
let innerHtml = "<p>Click here to <a href=\"#Home\">return home</a></p>";
|
||||
console.log(innerHtml);
|
||||
`
|
||||
```javascript
|
||||
//Solution1:
|
||||
let innerHtml = "<p>Click here to <a href=\"#Home\">return home</a></p>";
|
||||
console.log(innerHtml);
|
||||
```
|
@ -8,12 +8,13 @@ localeTitle: القبض عن طريق واحدة من الأخطاء عند اس
|
||||
|
||||
بسبب الطريقة التي تعمل بها فهارس جافا سكريبت `firstFive` لديها **خمسة عناصر** لكنها مفهرسة من **0 إلى 4** !
|
||||
|
||||
`console.log(len); // 5
|
||||
console.log(firstFive[0]); // 1
|
||||
/**/
|
||||
console.log(firstFive[4]); // 5
|
||||
console.log(firstFive[5]); // undefined
|
||||
`
|
||||
```javascript
|
||||
console.log(len); // 5
|
||||
console.log(firstFive[0]); // 1
|
||||
/**/
|
||||
console.log(firstFive[4]); // 5
|
||||
console.log(firstFive[5]); // undefined
|
||||
```
|
||||
|
||||
يجب أن يعطيك ما يكفي لإدراك حدود `firstFive` . توجيه انتباهك إلى الحلقة. ماذا تعمل، أو ماذا تفعل؟ يمكنك محاولة تصحيح الأخطاء لمعرفة ذلك!
|
||||
|
||||
|
@ -6,21 +6,23 @@ localeTitle: قبض على الأقواس غير المغلقة ، بين قوس
|
||||
|
||||
تقلل طريقة تقليل () صفيفًا إلى قيمة واحدة. إذا لم تكن على دراية بها ، يعرض التعليمة البرمجية التالية مثالاً على استخدام الطريقة:
|
||||
|
||||
`const array1 = [1, 2, 3, 4];
|
||||
console.log(array1.reduce((accumulator, currentValue) => accumulator + currentValue)); // expected output: 10
|
||||
`
|
||||
```
|
||||
const array1 = [1, 2, 3, 4];
|
||||
console.log(array1.reduce((accumulator, currentValue) => accumulator + currentValue)); // expected output: 10
|
||||
```
|
||||
|
||||
يمكنك أيضًا تعريف الوسيطة إلى طريقة الاختزال كمتغير أو ثابت وتسليمها إلى الوظيفة ، على سبيل المثال ،
|
||||
|
||||
`const array1 = [1, 2, 3, 4];
|
||||
const reducer = (accumulator, currentValue) => accumulator + currentValue;
|
||||
|
||||
// 1 + 2 + 3 + 4
|
||||
console.log(array1.reduce(reducer)); // expected output: 10
|
||||
|
||||
// 5 + 1 + 2 + 3 + 4
|
||||
console.log(array1.reduce(reducer, 5)); // expected output: 15
|
||||
`
|
||||
```
|
||||
const array1 = [1, 2, 3, 4];
|
||||
const reducer = (accumulator, currentValue) => accumulator + currentValue;
|
||||
|
||||
// 1 + 2 + 3 + 4
|
||||
console.log(array1.reduce(reducer)); // expected output: 10
|
||||
|
||||
// 5 + 1 + 2 + 3 + 4
|
||||
console.log(array1.reduce(reducer, 5)); // expected output: 15
|
||||
```
|
||||
|
||||
يمكنك رؤية وتشغيل هذا الرمز في [Array.prototype.reduce ()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) .
|
||||
|
||||
|
@ -9,15 +9,16 @@ localeTitle: قبض على استخدام مشغل التعيين بدلا من
|
||||
|
||||
## حل
|
||||
|
||||
`let x = 7;
|
||||
let y = 9;
|
||||
let result = "to come";
|
||||
|
||||
if(x == y) {
|
||||
result = "Equal!";
|
||||
} else {
|
||||
result = "Not equal!";
|
||||
}
|
||||
|
||||
console.log(result);
|
||||
`
|
||||
```javascript
|
||||
let x = 7;
|
||||
let y = 9;
|
||||
let result = "to come";
|
||||
|
||||
if(x == y) {
|
||||
result = "Equal!";
|
||||
} else {
|
||||
result = "Not equal!";
|
||||
}
|
||||
|
||||
console.log(result);
|
||||
```
|
@ -8,21 +8,23 @@ localeTitle: منع حلقات لا نهائية مع شرط محطة صالح
|
||||
* لذا يحدث الخطأ في هذا التحدي بسبب الشرط - `i != 4` - في حلقة for.
|
||||
* إذا ألقيت نظرة عن كثب على الرمز:
|
||||
|
||||
`function myFunc() {
|
||||
for (let i = 1; i != 4; i += 2) {
|
||||
console.log("Still going!");
|
||||
}
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
function myFunc() {
|
||||
for (let i = 1; i != 4; i += 2) {
|
||||
console.log("Still going!");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
* سترى أن `i` هو initialised أولا ك 1 وبعد كل تكرار للحلقة، `i` يتزايد بنسبة 2.
|
||||
* باستخدام هذا المنطق ، بعد التكرار الأول - `i = 3` والتكرار الثاني `i = 5` ، لن يتم استيفاء الشرط `i != 4` وستحدث حلقة لا نهائية.
|
||||
|
||||
## حل:
|
||||
|
||||
`function myFunc() {
|
||||
for (let i = 1; i <= 4; i += 2) {
|
||||
console.log("Still going!");
|
||||
}
|
||||
}
|
||||
`
|
||||
```javascript
|
||||
function myFunc() {
|
||||
for (let i = 1; i <= 4; i += 2) {
|
||||
console.log("Still going!");
|
||||
}
|
||||
}
|
||||
```
|
@ -7,41 +7,44 @@ localeTitle: استخدام الحذر عند Reinitializing متغيرات دا
|
||||
* يجب حل هذا التحدي من خلال إعادة تعريف نطاق `row[]` .
|
||||
* فيما يلي مثال على المصفوفة المطلوبة.
|
||||
|
||||
`[
|
||||
[0][0],
|
||||
[0][0],
|
||||
[0][0]
|
||||
]
|
||||
`
|
||||
```javascript
|
||||
[
|
||||
[0][0],
|
||||
[0][0],
|
||||
[0][0]
|
||||
]
|
||||
```
|
||||
|
||||
* ومع ذلك ، فإن المصفوفة الحالية - الموضحة أدناه - بعيدة عن المصفوفة المرغوبة
|
||||
|
||||
`[
|
||||
[0][0][0][0][0][0],
|
||||
[0][0][0][0][0][0],
|
||||
[0][0][0][0][0][0]
|
||||
]
|
||||
`
|
||||
```javascript
|
||||
[
|
||||
[0][0][0][0][0][0],
|
||||
[0][0][0][0][0][0],
|
||||
[0][0][0][0][0][0]
|
||||
]
|
||||
```
|
||||
|
||||
* يحدث هذا الخطأ بسبب `row[]` صف يتم الإعلان عنه كمتغير عمومي خارج الحلقة المتداخلة.
|
||||
* ومع ذلك ، لملء المصفوفة بشكل صحيح يجب إعادة تعيين `row[]` بعد كل تكرار للحلقة الخارجية.
|
||||
|
||||
## حل
|
||||
|
||||
`function zeroArray(m, n) {
|
||||
let newArray = [];
|
||||
for (let i = 0; i < m; i++) {
|
||||
let row = []; /* <----- row has been declared inside the outer loop.
|
||||
Now a new row will be initialised during each iteration of the outer loop allowing
|
||||
for the desired matrix. */
|
||||
for (let j = 0; j < n; j++) {
|
||||
|
||||
row.push(0);
|
||||
}
|
||||
newArray.push(row);
|
||||
}
|
||||
return newArray;
|
||||
}
|
||||
let matrix = zeroArray(3, 2);
|
||||
console.log(matrix);
|
||||
`
|
||||
```javascript
|
||||
function zeroArray(m, n) {
|
||||
let newArray = [];
|
||||
for (let i = 0; i < m; i++) {
|
||||
let row = []; /* <----- row has been declared inside the outer loop.
|
||||
Now a new row will be initialised during each iteration of the outer loop allowing
|
||||
for the desired matrix. */
|
||||
for (let j = 0; j < n; j++) {
|
||||
|
||||
row.push(0);
|
||||
}
|
||||
newArray.push(row);
|
||||
}
|
||||
return newArray;
|
||||
}
|
||||
let matrix = zeroArray(3, 2);
|
||||
console.log(matrix);
|
||||
```
|
@ -8,6 +8,7 @@ localeTitle: استخدم typeof للتحقق من نوع المتغير
|
||||
|
||||
## حل:
|
||||
|
||||
`console.log(typeof seven);
|
||||
console.log(typeof three);
|
||||
`
|
||||
```javascript
|
||||
console.log(typeof seven);
|
||||
console.log(typeof three);
|
||||
```
|
@ -14,6 +14,7 @@ localeTitle: قم بإنشاء "تصدير تراجعي" باستخدام الإ
|
||||
|
||||
## حل:
|
||||
|
||||
`"use strict";
|
||||
export default function subtract(x,y) {return x - y;}
|
||||
`
|
||||
```javascript
|
||||
"use strict";
|
||||
export default function subtract(x,y) {return x - y;}
|
||||
```
|
@ -14,7 +14,8 @@ localeTitle: استيراد تصدير افتراضي
|
||||
|
||||
## حل:
|
||||
|
||||
`"use strict";
|
||||
import subtract from "math_functions";
|
||||
subtract(7,4);
|
||||
`
|
||||
```javascript
|
||||
"use strict";
|
||||
import subtract from "math_functions";
|
||||
subtract(7,4);
|
||||
```
|
@ -8,15 +8,16 @@ localeTitle: تعيين المعلمات الافتراضية لوظائفك
|
||||
|
||||
### : checkered\_flag: مشكلة التفسير:
|
||||
|
||||
`const increment = (function() {
|
||||
"use strict";
|
||||
return function increment(number, value) {
|
||||
return number + value;
|
||||
};
|
||||
})();
|
||||
console.log(increment(5, 2)); // returns 7
|
||||
console.log(increment(5)); // returns NaN
|
||||
`
|
||||
```javascript
|
||||
const increment = (function() {
|
||||
"use strict";
|
||||
return function increment(number, value) {
|
||||
return number + value;
|
||||
};
|
||||
})();
|
||||
console.log(increment(5, 2)); // returns 7
|
||||
console.log(increment(5)); // returns NaN
|
||||
```
|
||||
|
||||
سنقوم بتعديل دالة الزيادة بحيث يتم زيادة معلمة **الرقم** بمقدار 1 بشكل افتراضي ، عن طريق تعيين **القيمة** إلى 1 إذا لم يتم تمرير **قيمة للقيمة** إلى دالة الزيادة.
|
||||
|
||||
@ -40,15 +41,16 @@ localeTitle: تعيين المعلمات الافتراضية لوظائفك
|
||||
|
||||
## : مبتدئ: حل الرمز الأساسي:
|
||||
|
||||
`const increment = (function() {
|
||||
"use strict";
|
||||
return function increment(number, value = 1) {
|
||||
return number + value;
|
||||
};
|
||||
})();
|
||||
console.log(increment(5, 2)); // returns 7
|
||||
console.log(increment(5)); // returns NaN
|
||||
`
|
||||
```javascript
|
||||
const increment = (function() {
|
||||
"use strict";
|
||||
return function increment(number, value = 1) {
|
||||
return number + value;
|
||||
};
|
||||
})();
|
||||
console.log(increment(5, 2)); // returns 7
|
||||
console.log(increment(5)); // returns NaN
|
||||
```
|
||||
|
||||
|
||||
## شرح الشفرة
|
||||
|
@ -16,7 +16,8 @@ localeTitle: فهم الاختلافات بين الاستيراد وتتطلب
|
||||
|
||||
## حل
|
||||
|
||||
`"use strict";
|
||||
import { capitalizeString } from "string-functions";
|
||||
capitalizeString("hello!");
|
||||
`
|
||||
```javascript
|
||||
"use strict";
|
||||
import { capitalizeString } from "string-functions";
|
||||
capitalizeString("hello!");
|
||||
```
|
@ -14,6 +14,7 @@ localeTitle: استخدم * لاستيراد كل شيء من ملف
|
||||
|
||||
## حل:
|
||||
|
||||
`"use strict";
|
||||
import * as str from "capitalize_strings";
|
||||
`
|
||||
```javascript
|
||||
"use strict";
|
||||
import * as str from "capitalize_strings";
|
||||
```
|
Reference in New Issue
Block a user