Array.prototype.concat()‎

من موسوعة حسوب

الدالة Array.prototype.concat()‎ تدمج مصفوفتين أو أكثر؛ وهذه الدالة لا تُغيّر المصفوفات الأصلية، وإنما تُعيد مصفوفةً جديدةً.

var arr1 = ['a', 'b', 'c'];
var arr2 = ['d', 'e', 'f'];

var arr3 = arr1.concat(arr2);

// arr3: [ "a", "b", "c", "d", "e", "f" ]

البنية العامة

var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])

valueN

المصفوفات أو القيم التي ستُضاف إلى بعضها لتشكيل مصفوفة جديدة.

القيمة المعادة

مصفوفة جديدة.

الوصف

الدالة concat تُنشِئ مصفوفةً جديدةً تحتوي على العناصر الموجودة في الكائن الذي استدعيت هذه الدالة عليه، متبوعةً بعناصر كل وسيط (إذا كان الوسيط مصفوفةً) أو الوسيط نفسه (إذا لم يكن الوسيط مصفوفةً).

الدالة concat لا تُغيّر أيّة مصفوفات، وإنما ستنسخ العناصر التي فيها نسخًا سطحيًا، فهي ستنسخ:

  • المرجعيات إلى الكائنات (وليس الكائنات نفسها): أي أنَّ المصفوفة الأصلية والمصفوفة الجديدة ستُشير إلى الكائن نفسه، أي لو عدّلنا ذلك الكائن فستنعكس التعديلات على المصفوفتين.
  • أنواع البيانات الأوليّة مثل السلاسل النصية والأرقام والقيم المنطقية (لكن ليس الكائنات String و Number و Boolean).

أمثلة

إضافة مصفوفتين إلى بعضهما

var alpha = ['a', 'b', 'c'];
var numeric = [1, 2, 3];

alpha.concat(numeric);
// ['a', 'b', 'c', 1, 2, 3]

إضافة ثلاث مصفوفات إلى بعضها بعضًا

var num1 = [1, 2, 3],
    num2 = [4, 5, 6],
    num3 = [7, 8, 9];

var nums = num1.concat(num2, num3);

console.log(nums); 
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

إضافة قيم إلى مصفوفة

var alpha = ['a', 'b', 'c'];

var alphaNumeric = alpha.concat(1, [2, 3]);

console.log(alphaNumeric); 
// ['a', 'b', 'c', 1, 2, 3]

المصفوفات المتشعبة والمرجعيات إلى كائنات

var num1 = [[1]];
var num2 = [2, [3]];

var nums = num1.concat(num2);

console.log(nums);
// [[1], 2, [3]]

// إضافة عنصر جديد
num1[0].push(4);

console.log(nums);
// [[1, 4], 2, [3]]

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم نعم نعم نعم نعم

مصادر ومواصفات