ในระหว่างการทำงานคุณมักจะพบปัญหาของการต่อ 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_ = array ใหม่ ();} stringConnect.prototype.append = ฟังก์ชั่น (a) {this._str_.push (a);} stringconnect.prototype.toString = function () {return this._str_join (); 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 ()); // -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - วันที่ (); console.log (d2.getTime ()-d1.getTime ()); // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ฉันปรับ C ให้เท่ากับ 5,000, 50000, 500000 และ 50000000 ตามลำดับ ค่าแต่ละค่าถูกวัด 10 ครั้งตามลำดับและผลลัพธ์สุดท้ายมีดังนี้:
C = 5,000
เวลาเฉลี่ยเป็นมิลลิวินาที
ประเภทที่สาม 3 2 2 3 1 2 2 1 1 1 1 1 1.8
ประเภทที่สอง 1 3 0 3 1 3 4 1 4 2 2.2
ประเภทแรก 0 0 0 0 0 0 0 1 1 1 1 1 1 0.5
C = 50000
ประเภทที่สาม 22 12 9 14 13 13 13 10 17 13.5
ประเภทที่สอง 8 13 12 8 11 8 9 8 9 9.7
ประเภทแรก 7 12 5 11 10 10 13 16 12 10.6
C = 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
C = 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 จะมีการเพิ่มพารามิเตอร์แบบสุ่มลงในแถบที่อยู่ซึ่งควรหลีกเลี่ยงผลกระทบของแคช การตัดสินจากผลลัพธ์วิธีแรกไม่ได้ใช้มากกว่าสองวิธีอื่น ๆ และมันก็เป็นประโยชน์มากขึ้นซึ่งเห็นได้ชัดว่าไม่สอดคล้องกับคำแนะนำในคู่มือ
ระบบทดสอบ: Win 7 เรือธง
เบราว์เซอร์: Chrome 52.0.2739.0 m
บทความข้างต้นกล่าวถึงวิธีการเชื่อมต่อสตริงสามวิธีและการเปรียบเทียบประสิทธิภาพใน JS เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น