javascript - صفيف الانضمام ضد سلسلة Concat
arrays performance (4)
ما الطريقة الأسرع؟
صفيف الانضمام:
var str_to_split = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
var myarray = str_to_split.split(",");
var output=myarray.join("");
سلسلة Concat:
var str_to_split = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
var myarray = str_to_split.split(",");
var output = "";
for (var i = 0, len = myarray.length; i<len; i++){
output += myarray[i];
}
السلسله اليدويه هو اسرع ، لمجموعة رقمية من طول ثابت.
إليك اختبار JSPerf يختبر هاتين العمليتين :
zxy.join('/')
// versus
zxy[0] + '/' + zxy[1] + '/' + zxy[2]
// given the array
zxy = [1, 2, 3]
// resulting in the string '0/1/2'
النتائج: باستخدام Chrome 64.0.3282.186 ، كانت Array.join
أبطأ بنسبة 46٪.
سلسلة سلسلة أسرع في ECMAScript. في ما يلي معيار تم إنشاؤه لعرضه:
وفقًا لوثيقة Google هذه بعنوان "تحسين شفرة شفرة جافا سكريبت" ، تكون concat أبطأ عندئذٍ صفيفًا ، ولكن يبدو أن هذا ليس صحيحًا لمحركات Javascript الحديثة.
لقد قدمت معيارًا لمثال اختبار فيبوناتشي الذي استخدموه في المستند ويظهر أن سلسلة (لصق) السلسلة تقريبًا 4 × بسرعة مثل استخدام join
Array
.
يمكنني القول بالتأكيد أن استخدام Array.join () أسرع. لقد عملت على بعض أجزاء من شفرة جافا سكريبت وأسرعت في الأداء بشكل كبير عن طريق إزالة التلاعب في السلسلة لصالح المصفوفات.