كيفية تحويل المصفوفة إلى سلسلة مفصولة بفواصل في جافاسكريبت


لدي مصفوفة:

a.value =  [a,b,c,d,e,f]

كيف يمكنني التحويل إلى سلسلة مفصولة بفواصل مثل:

a.value = "a,b,c,d,e,f"

الإجابة رقم 1

تقوم الطريقة array.toString() فعليًا باستدعاء array.join() مما يؤدي إلى سلسلة مترابطة باستخدام الفواصل. المرجع

var array = ['a','b','c','d','e','f'];
document.write(array.toString()); // "a,b,c,d,e,f"

أيضًا، يمكنك استدعاء Array.toString() ضمنيًا عن طريق جعل جافاسكريبت تجبر Array على أن تصبح string، مثل:

//will implicitly call array.toString()
str = ""+array;
str = `${array}`;

Array.prototype.join()

تقوم طريقة join() بضم جميع عناصر المصفوفة في سلسلة نصية.

الحجج:

يقبل separator كوسيطة، لكن الإفتراضي هو بالفعل فاصلة ,

str = arr.join([separator = ','])

أمثلة:

var array = ['A', 'B', 'C'];
var myVar1 = array.join();      // 'A,B,C'
var myVar2 = array.join(', ');  // 'A, B, C'
var myVar3 = array.join(' + '); // 'A + B + C'
var myVar4 = array.join('');    // 'ABC'

ملاحظة :

إذا كان أي عنصر في المصفوفة غير معرف أو فارغًا، يتم اعتباره كسلسلة فارغة.

دعم المتصفح:

إنه متاح تقريبًا في كل مكان اليوم، منذ IE 5.5 (1999~2000).

المراجع

  • مواصفة ECMA
  • موزيلا
  • MSDN

الإجابة رقم 2

استخدم طريقة join من نوع Array.

a.value = [a, b, c, d, e, f];
var stringValueYouWant = a.join();

ستُرجع طريقة join سلسلة نصية تمثل دمج جميع عناصر المصفوفة. ستستخدم المعامل الأول الذي تمرره كمحدد - إذا لم تستخدم واحدًا، ستستخدم المحدد الافتراضي، وهو الفاصلة.

الإجابة رقم 3

يمكنك ببساطة استخدام دالة join() في JavaScript لذلك. سيبدو هذا ببساطة مثل a.value.join(','). ومع ذلك، سيكون الناتج سلسلة نصية.