أثناء العمل ، غالبًا ما تواجه مشكلة التسلسل 2 أو أكثر في سلسلة واحدة. هناك عمومًا ثلاث طرق للتعامل مع هذا النوع من المشكلات في JS. فيما يلي قائمة بها واحدة تلو الأخرى وإجراء مقارنة محددة لأدائها.
تستخدم الطريقة الأولى الموصل "+" لتوصيل السلسلة المراد توصيلها:
str = "a" ؛ str+= "b" ؛
ليس هناك شك في أن هذه الطريقة هي الأكثر ملاءمة وسريعة. إذا قمت بتوصيل أقل من 100 سلاسل فقط ، فمن المستحسن استخدام هذه الطريقة.
تستخدم الطريقة الثانية صفيف كوسيط لتوصيل السلسلة بالانضمام:
var arr = new array () ؛ arr.push (a) ؛ arr.push (b) ؛ var str = arr.join ("") ؛يقدم موقع W3School أن هذه الطريقة تستهلك موارد أقل من أول واحد وأسرع. سنتحقق لاحقًا مما إذا كان هذا هو الحال من خلال التجارب.
تستخدم الطريقة الثالثة خصائص الكائن لتوصيل السلاسل
الوظيفة stringConnect () {this._str_ = new array () ؛} StringConnect.Prototype.append = function (a) {this._str_push (a) ؛} stringConnect.Prototype.ToString = function () {return this._str_son () ؛} var mystr = new mystr.append ("a") ؛ var str = mystr.toString () ؛استخدم الكود التالي لمقارنة أداء الطرق الثلاث وضبط عدد سلاسل الاتصال عن طريق تغيير قيمة C:
var str = "" ؛ var d1 ، d2 ؛ var c = 5000 ؛ // عدد الاتصال سلاسل // -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mystr.append ("a") ؛ } str = mystr.toString () ؛ D2 = تاريخ جديد () ؛ console.log (d2.getTime ()-d1.gettime ()) ؛ // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Date () ؛ console.log (d2.gettime ()-d1.gettime ()) ؛ // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------لقد قمت بتعديل C لتكون مساوية لـ 5000 و 50000 و 500000 و 50000000 على التوالي. تم قياس كل قيمة 10 مرات على التوالي ، وكانت النتيجة النهائية على النحو التالي:
ج = 5000
متوسط الوقت بالمللي ثانية
النوع الثالث 3 2 2 3 1 2 2 1 1 1 1.8
النوع الثاني 1 3 0 3 1 3 4 1 4 2 2.2
النوع الأول 0 0 0 0 0 0 1 1 1 1 1 0.5
ج = 50000
النوع الثالث 22 12 9 14 12 13 13 13 10 17 13.5
النوع الثاني 8 13 12 8 11 11 8 9 8 9 9.7
النوع الأول 7 12 5 11 10 10 10 13 16 12 10.6
ج = 500000
النوع الثالث 104 70 74 69 76 77 69 102 73 73 78.7
النوع الثاني 78 100 99 99 100 98 96 71 94 97 93.2
النوع الأول 90 87 83 85 85 83 84 83 88 86 85.4
ج = 5000000
النوع الثالث 651 871 465 444 1012 436 787 449 432 444 599.1
النوع الثاني 568 842 593 747 417 747 719 549 573 563 631.8
النوع الأول 516 279 616 161 466 416 201 495 510 515 417.5
عند حساب 5000000 ، تتم إضافة معلمات عشوائية إلى شريط العناوين ، والتي يجب أن تتجنب تأثير ذاكرة التخزين المؤقت. انطلاقًا من النتائج ، لا تستهلك الطريقة الأولى أكثر من الطريقتين الأخريين ، وهي أكثر فائدة ، والتي من الواضح أنها غير متوافقة مع التعليمات في الدليل.
نظام الاختبار: فوز 7 الرائد
المتصفح: Chrome 52.0.2739.0 M
تناقش المقالة أعلاه باختصار أساليب اتصال السلسلة الثلاثة ومقارنات الأداء في JS هي كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.