Files
freeCodeCamp/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/es6/mutate-an-array-declared-with-const.md
2022-10-20 09:13:17 -07:00

3.0 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7b87367417b2b2512b42 Mutate an Array Declared with const 1 301206 mutate-an-array-declared-with-const

--description--

إذا كنت غير مألوفة مع const، تحقق من هذا التحدي حول كلمة const الثابتة.

يحتوي تعريف const على العديد من حالات الاستخدام في JavaScript الحديثة.

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

ومع ذلك، من المهم أن نفهم أن الـ objects (بما في ذلك arrays و functions) المخصصة للمتغير باستخدام const لا تزال قابلة للتغيير. استخدام تعريف const يمنع فقط إعادة تعيين معرف المتغير.

const s = [5, 6, 7];
s = [1, 2, 3];
s[2] = 45;
console.log(s);

s = [1, 2, 3] سيؤدي إلى خطأ. بعد التعليق على هذا السطر، سيعرض console.log القيمة [5, 6, 45].

كما ترون، يمكنك تغيير الكائن [5, 6, 7] نفسه والمتغير s سيظل يشير إلى الـ array المعدلة [5, 6, 45]. مثل جميع الـ arrays، عناصر الـ array في s قابلة للتغيير، ولكن لأن const تم استخدامها، لا يمكنك استخدام معرف المتغير s للإشارة إلى array مختلفة باستخدام مشغل التعيين (assignment operator).

--instructions--

الـ array معرفة كـ const s = [5, 7, 2]. قم بتغيير الـ array إلى [2, 5, 7] باستخدام تعيينات العناصر المتنوعة.

--hints--

لا ينبغي أن تستبدل كلمة const.

(getUserInput) => assert(getUserInput('index').match(/const/g));

s يجب أن يكون متغير ثابت (باستخدام const).

(getUserInput) => assert(getUserInput('index').match(/const\s+s/g));

لا يجب عليك تغيير تعريف الـ array الأصلي.

(getUserInput) =>
  assert(
    getUserInput('index').match(
      /const\s+s\s*=\s*\[\s*5\s*,\s*7\s*,\s*2\s*\]\s*;?/g
    )
  );

s يجب أن يساوي [2, 5, 7].

assert.deepEqual(s, [2, 5, 7]);

--seed--

--seed-contents--

const s = [5, 7, 2];
function editInPlace() {
  // Only change code below this line

  // Using s = [2, 5, 7] would be invalid

  // Only change code above this line
}
editInPlace();

--solutions--

const s = [5, 7, 2];
function editInPlace() {
  s[0] = 2;
  s[1] = 5;
  s[2] = 7;
}
editInPlace();