Skip to content

Commit 715a603

Browse files
authored
Merge pull request #24 from dvmhmdsd/master
JSON methods, toJSON
2 parents 1832b14 + aa6d834 commit 715a603

10 files changed

Lines changed: 257 additions & 246 deletions

File tree

1-js/05-data-types/12-json/1-serialize-object/task.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
importance: 5
1+
درجة الأهمية: 5
22

33
---
44

5-
# Turn the object into JSON and back
5+
# تحويل الكائن لجيسون وإرجاعه مرة أخرى
66

7-
Turn the `user` into JSON and then read it back into another variable.
7+
قم بتحويل الكائن `user` إلى JSON ثم قم بإضافته ككائن إلى متغير آخر.
88

99
```js
1010
let user = {

1-js/05-data-types/12-json/2-serialize-event-circular/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ alert( JSON.stringify(meetup, function replacer(key, value) {
2626
*/
2727
```
2828

29-
Here we also need to test `key==""` to exclude the first call where it is normal that `value` is `meetup`.
29+
نحتاج أن نفحص أيضًا `key==""` لاستثناء أول استدعاء لأن قيمته الطبيعية هي الكائن `meetup`.
3030

1-js/05-data-types/12-json/2-serialize-event-circular/task.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
importance: 5
1+
درجة الأهمية: 5
22

33
---
44

5-
# Exclude backreferences
5+
# استثناء المراجع لكائنات أخرى
66

7-
In simple cases of circular references, we can exclude an offending property from serialization by its name.
7+
فى بعض الحالات البسيطة من المرجعية الثنائية (circular references)، يمكننا أن نستبعد الخاصية الغير مرغوبة من التحويل عن طريق اسمها.
88

9-
But sometimes we can't just use the name, as it may be used both in circular references and normal properties. So we can check the property by its value.
9+
ولكن فى بعض الأوقات لا يمكننا أن نستخدم الإسم فقط، حيث أنها يمكن أن تكون مستخدمه فى مرجعية ثنائية وفى خاصية عادية، ولذلك يمكننا أن نختبر الخاصية عن طريق اسمها.
1010

11-
Write `replacer` function to stringify everything, but remove properties that reference `meetup`:
11+
قم بإنشاء الدالة `replacer` لتحويل كل شيئ إلى نص ولكن تقوم بحذف الخصائص التى تحتوى على مرجع للكائن `meetup`:
1212

1313
```js run
1414
let room = {
@@ -28,10 +28,10 @@ meetup.self = meetup;
2828
*/!*
2929

3030
alert( JSON.stringify(meetup, function replacer(key, value) {
31-
/* your code */
31+
/* الحل الخاص بك */
3232
}));
3333

34-
/* result should be:
34+
/* يجب أن تكون النتيجة كالآتي:
3535
{
3636
"title":"Conference",
3737
"occupiedBy":[{"name":"John"},{"name":"Alice"}],

1-js/05-data-types/12-json/article.md

Lines changed: 141 additions & 134 deletions
Large diffs are not rendered by default.

1-js/08-prototypes/03-native-prototypes/1-defer-to-prototype/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ function f() {
99
alert("Hello!");
1010
}
1111

12-
f.defer(1000); // shows "Hello!" after 1 sec
12+
f.defer(1000); // تعرض كلمة "Hello!" بعد 1 ثانية
1313
```
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
importance: 5
1+
درجة الأهمية: 5
22

33
---
44

5-
# Add method "f.defer(ms)" to functions
5+
# إضافة الدالة "f.defer(ms)" للدوال
66

7-
Add to the prototype of all functions the method `defer(ms)`, that runs the function after `ms` milliseconds.
7+
أضف إلى نموذج الدوال الدالة `defer(ms)` والتى تقوم بتشغيل الدالة بعد `ms` مللى ثانية.
88

9-
After you do it, such code should work:
9+
بعد أن تفعلها، سيعمل الكود التالى:
1010

1111
```js
1212
function f() {
1313
alert("Hello!");
1414
}
1515

16-
f.defer(1000); // shows "Hello!" after 1 second
16+
f.defer(1000); // تعرض كلمة "Hello!" بعد 1 ثانية
1717
```

1-js/08-prototypes/03-native-prototypes/2-defer-to-prototype-extended/solution.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ Function.prototype.defer = function(ms) {
88
}
99
};
1010

11-
// check it
11+
// اختبر
1212
function f(a, b) {
1313
alert( a + b );
1414
}
1515

16-
f.defer(1000)(1, 2); // shows 3 after 1 sec
16+
f.defer(1000)(1, 2); // تعرض 3 بعد ثانية واحدة
1717
```
1818

19-
Please note: we use `this` in `f.apply` to make our decoration work for object methods.
19+
لاحظ: استخدمنا `this` فى `f.apply` لتعمل مع دوال الكائنات.
2020

21-
So if the wrapper function is called as an object method, then `this` is passed to the original method `f`.
21+
ولذلك إذا تم استدعاء دالة كدالة كائن (method) فإن `this` سيتم تمرريرها إلى الدالة الأصلية `f`.
2222

2323
```js run
2424
Function.prototype.defer = function(ms) {
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
importance: 4
1+
درجة الأهمية: 4
22

33
---
44

5-
# Add the decorating "defer()" to functions
5+
# إضافة الدالة المعدلة للدوال
66

7-
Add to the prototype of all functions the method `defer(ms)`, that returns a wrapper, delaying the call by `ms` milliseconds.
7+
أضف إلى النموذج الخاص بالدوال الدالة `defer(ms)`، والتى تقوم بإرجاع حاوى (wrapper) وتؤخر التنفيذ بعد `ms` مللى ثانية.
88

9-
Here's an example of how it should work:
9+
هاك مثال لكيفية استخدامها:
1010

1111
```js
1212
function f(a, b) {
1313
alert( a + b );
1414
}
1515

16-
f.defer(1000)(1, 2); // shows 3 after 1 second
16+
f.defer(1000)(1, 2); // تعرض 3 بعد ثانية واحدة
1717
```
1818

19-
Please note that the arguments should be passed to the original function.
19+
لاحظ أن المتغيرات يجب أن تُمرر إلى الدالة الأصلية.

0 commit comments

Comments
 (0)