اذهب إلى المحتوى

السؤال

نشر (معدل)

أحاول أن أقوم بتحويل المصفوفة إلى سلسلة نصية بإستخدام الدالة toString ولكن المشكلة ان عناصر المصفوفة يتم طباعتهم ولكن بينهم فواصل 

تم التعديل في بواسطة شرف الدين2
توضيح العنوان + تحسين الأخطاء الإمﻻئية في السؤال

Recommended Posts

  • 1
نشر

ﻻ يمكنك تحقيق ذلك مباشرةً من خﻻل الدالة Array.toString ولكن يمكنك تحقيق ذلك عن طريق الدالة join

وتقوم دالة join بضم العناصر بداخل المصفوفة وتحويلهم إلى سلسلة نصية , وتعريف الدالة كالتالي

join()
join(separator)

من الواضح كما ترى أن يمكن إعطاء مُعامل إلى الدالة أو إستدعائها بدون معاملات, المعامل هنا هو الفاصل بين العناصر seperator, بشكل إفتراضي تكون قيمة الفاصل بفاصلة 

const arr=["a","b","c"];
const str=arr.join();
console.log(str);////a,b,c

ومن الممكن إعطاء قيمة للفاصل حتى يتغير سلوك الدالة 

const arr=["a","b","c"];
const str=arr.join("+");
console.log(str);////a+b+c

وفي حالة كنت تريد طباعة العناصر بجانب بعضها البعض دون أي فواصل يمكنك وضع عﻻمتي تنصيص فارغتين 

const arr=["a","b","c"];
const str=arr.join("");
console.log(str);////abc

 

  • 2
نشر

يمكنك أيضا ذلك عن طريق إستعمال التابع replace لإستبدال كل الفواصل الناتجة عن تحويل المصفوفة إلى سلسلة نصية بإستعمال toString كالتالي : 

var arr = ['hsoub' ,'academy' ,'is' ,'cool'];

console.log( arr.toString().replace(/,/g ,' ') );

// hsoub academy is cool

كما يمكنك إستعمال الباني الخاص بـالصنف String كالتالي : 

var arr = ['hsoub' ,'academy' ,'is' ,'cool'];

console.log( String(arr).replace(/,/g,' ') );

// hsoub academy is cool

و لكن عيب هاتين الطريقتين هو في إحتمالية إحتواء أحد عناصر المصفوفة فاصلة مثل "h,soub" . لن يتم إعتبارها و سيتم إستبدالها بفراغ بكل حال من الأحوال . 

و كحل لهاته المشكلة يمكنك إستعمال بدلا من ذلك الطريقة التالية :  

  • تقليل المصفوفة إلى قيمة واحدة عن طريق التابع reduce بإستعمال فاصل مخصص كالتالي : 
var arr = ['hsoub' ,'academy' ,'is' ,'cool,' ,'awesome' ,'and great!'];

arr.reduce((str, a) => { return str +' '+ a });

// hsoub academy is cool, awesome and great!

يمكنك الإطلاع على كل من : 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...