ประเภทอาร์เรย์ใน JavaScript นั้นแตกต่างจากภาษาอื่น ๆ มาก แต่ละรายการใน JavaScript สามารถเก็บข้อมูลทุกประเภท ยิ่งไปกว่านั้น ขนาดของอาร์เรย์ JavaScript สามารถปรับได้แบบไดนามิกและสามารถเติบโตได้โดยอัตโนมัติเมื่อมีการเพิ่มข้อมูลเพื่อรองรับข้อมูลใหม่
มีสองรูปแบบพื้นฐานในการสร้างอาร์เรย์
1. อาร์เรย์คอนสตรัคเตอร์
Var Cities = New Array ();
หากคุณทราบจำนวนรายการที่จะบันทึกล่วงหน้าคุณสามารถส่งหมายเลขนี้ไปยังตัวสร้างซึ่งจะกลายเป็นค่าของแอตทริบิวต์ความยาวโดยอัตโนมัติ
Var Cities = New Array (3);
นอกจากนี้คุณยังสามารถส่งรายการที่ควรรวมอยู่ในอาร์เรย์ไปยังตัวสร้างอาร์เรย์
Var Cities = New Array ("Shanghai", "Beijing", "Shenzhen");ผู้ให้บริการใหม่สามารถละเว้นได้เมื่อสร้างอาร์เรย์:
Var Cities = Array (3); // สร้างอาร์เรย์ที่มี 3 องค์ประกอบ
2. การเป็นตัวแทนตามตัวอักษรอาร์เรย์
สัญกรณ์ตัวอักษรอาร์เรย์แสดงโดยคู่ของวงเล็บสี่เหลี่ยมจัตุรัสที่มีรายการอาร์เรย์คั่นด้วยเครื่องหมายจุลภาคดังต่อไปนี้:
Var Cities = ["Shanghai", "Beijing", "Shenzhen"]; Var Cities = []; // สร้างสตริงเปล่า
เมื่ออ่านและตั้งค่าค่าของอาร์เรย์ให้ใช้วงเล็บเหลี่ยมและจัดทำดัชนีตัวเลขตาม 0 (ตาม 0 คือการนับตั้งแต่ 0 เทอมแรกคือ 0 เทอมที่สองคือ 1 และอื่น ๆ ) ดังที่แสดงด้านล่าง:
Var Cities = ["Shanghai", "ปักกิ่ง", "เซินเจิ้น"]; แจ้งเตือน (เมือง [0]); // "เซี่ยงไฮ้" เมือง [1] = "ฮ่องกง"; // แก้ไขรายการที่สอง "ปักกิ่ง" เป็น "ฮ่องกง" เมือง [3] = "ไต้หวัน" // เพิ่มรายการใหม่
จำนวนรายการในอาร์เรย์จะถูกบันทึกไว้ในคุณสมบัติความยาว และไม่ได้อ่านอย่างเดียว ดังนั้นโดยการตั้งค่าคุณสมบัติความยาวคุณสามารถลบรายการออกจากส่วนท้ายของอาร์เรย์หรือเพิ่มรายการใหม่ลงในอาร์เรย์
Var Cities = ["Shanghai", "Beijing", "Shenzhen"]; Cities.length = 2; Alert (เมือง [2]); // ไม่ได้กำหนด
การใช้คุณสมบัติความยาวนี้คุณสามารถเพิ่มรายการใหม่ได้ในตอนท้ายของอาร์เรย์:
Var Cities = ["Shanghai", "Beijing", "Shenzhen"]; เมือง [Cities.length] = "Hongkong";
1. ตรวจจับอาร์เรย์
Ecmascript5 ได้เพิ่มเมธอด array.isarray () ซึ่งคือการพิจารณาว่าค่าเป็นอาร์เรย์โดยไม่คำนึงถึงสภาพแวดล้อมการดำเนินการทั่วโลกที่สร้างขึ้น การใช้งานมีดังนี้:
if (array.isarray (value)) {// ดำเนินการบางอย่างในอาร์เรย์}2. วิธีการแปลง
วัตถุทั้งหมดมีวิธีการ tolocalestring (), toString () และ valueof () วิธีการ TOSTRING () ของอาร์เรย์เรียกว่า toString () เพื่อส่งคืนสตริงที่แยกออกจากเครื่องหมายจุลภาคจากรูปแบบสตริงของแต่ละค่าในอาร์เรย์ ตัวอย่างเช่น:
Var Cities = ["Shanghai", "Beijing", "Shenzhen"]; Alert (Cities.tostring ()); // เซี่ยงไฮ้, ปักกิ่ง, เซินเจิ้นเนิร์ต (Cities.valueof ()); // เซี่ยงไฮ้ปักกิ่งเซินเจิ้นต์ (เมือง); // เซี่ยงไฮ้ปักกิ่งเซินเจิ้นต์ (เมือง); // เซี่ยงไฮ้ปักกิ่งเซินเจิ้น
หมายเหตุ: เนื่องจากการแจ้งเตือน () จำเป็นต้องได้รับพารามิเตอร์สตริงมันจะเรียกเมธอด toString () ในพื้นหลังดังนั้นมันจะได้รับผลลัพธ์เดียวกันกับการเรียกใช้วิธี TOSTRING () โดยตรง
นอกจากนี้วิธี tolocalestring () มักจะส่งคืนค่าเท่ากับ toString () และ valueof () ความแตกต่างคือเพื่อให้ได้ค่าของแต่ละรายการ วิธีการ tolocalestring () ของแต่ละรายการเรียก ว่าแทนที่จะใช้วิธี toString () ตัวอย่างเช่น:
var p1 = {tolocalestring: function () {return "p1 tolocalestring"; }, toString: function () {return "p1 toString"; - var p2 = {tolocalestring: function () {return "p2 tolocalestring"; }, toString: function () {return "p2 toString"; - var p = [p1, p2]; การแจ้งเตือน (P); การแจ้งเตือน (p.toString ()); การแจ้งเตือน (p.tolocalestring ());ผลการวิจัยพบว่าวิธีการ toString เรียกว่าในบรรทัดแรกและที่สองและวิธี tolocalestring เรียกว่าในบรรทัดที่สาม
วิธี tolocalestring (), toString () และ valueof () ที่สืบทอดโดยอาร์เรย์จะส่งคืนรายการอาร์เรย์ในรูปแบบของสตริงที่คั่นด้วยเครื่องหมายจุลภาคโดยค่าเริ่มต้น ด้วยวิธีการเข้าร่วม () คุณสามารถใช้อักขระที่แตกต่างกันเพื่อแยกสตริงแล้วส่งคืนสตริงที่มีรายการอาร์เรย์ทั้งหมด
Var Cities = ["Shanghai", "ปักกิ่ง", "เซินเจิ้น"]; แจ้งเตือน (เมือง); // เซี่ยงไฮ้, ปักกิ่ง, เซินเจิ้นเนิร์ต (Cities.join (",")); // เซี่ยงไฮ้, ปักกิ่ง, เซินเจิ้นเนิร์ต (Cities.oin ("|")); // เซี่ยงไฮ้ | ปักกิ่ง | เซินเจิ้น3. วิธีการสแต็ก
สแต็กเป็นโครงสร้างข้อมูลครั้งสุดท้าย (LIFO) ครั้งสุดท้ายและการแทรกและการลบรายการข้อมูลในสแต็กสามารถเกิดขึ้นได้ที่ด้านบนของสแต็กเท่านั้น อาร์เรย์ JavaScript ให้วิธีการ push () และ pop () สำหรับการใช้พฤติกรรมเหมือนสแต็ก
push () วิธีการ
คุณสามารถใช้พารามิเตอร์จำนวนเท่าใดก็ได้เพิ่มลงในตอนท้ายของอาร์เรย์และปรับเปลี่ยนความยาวของอาร์เรย์
var params = array ใหม่ (); var count = params.push ("a", "b"); แจ้งเตือน (params); // a, balert (นับ); // 2จากตัวอย่างข้างต้นเราจะเห็นว่าจำนวนคำที่แทรกกลับโดยวิธีการกด ()
วิธีป๊อป ()
ลบรายการสุดท้ายออกจากปลายอาร์เรย์ลดความยาวของอาร์เรย์และส่งคืนรายการที่ถูกลบ
var params = array ใหม่ (); var count = params.push ("a", "b", "c"); var item = params.pop (); แจ้งเตือน (รายการ); // ปฏิทิน (params.length); // 24. วิธีคิว
กฎการเข้าถึงสำหรับโครงสร้างข้อมูลของคิวเป็นครั้งแรกในครั้งแรก (FIFO) นั่นคือรายการจะถูกเพิ่มจากปลายคิวและรายการจะถูกลบออกจากส่วนหน้าของคิว
เปลี่ยน () วิธีการ
วิธีการ Shift () มีให้ใน JavaScript ซึ่งจะลบรายการแรกในอาร์เรย์และส่งคืนรายการและในเวลาเดียวกันจะปรับเปลี่ยนแอตทริบิวต์ความยาวของอาร์เรย์
var params = array ใหม่ (); var count = params.push ("a", "b", "c"); var item = params.shift (); // รับการแจ้งเตือนรายการแรก (รายการ); // aalert (params.length); // 2วิธี Unshift ()
JavaScript ยังให้วิธี Unshift () ซึ่งสามารถเพิ่มรายการใด ๆ ลงในปลายด้านหน้าของอาร์เรย์และส่งคืนความยาวของอาร์เรย์ใหม่
var params = array ใหม่ (); var count1 = params.unshift ("a"); การแจ้งเตือน (count1); // 1Alert (params); // avar count2 = params.unshift ("b"); แจ้งเตือน (count2); // 2Alert (params); // b, avar count3 = params.unshift ("c", "d"); แจ้งเตือน (params); // C, D, B, Aพบว่าหากมีคำศัพท์หลายคำในการยกเลิก () ในแต่ละครั้งมันจะแทรกคำเหล่านี้ลงในอาร์เรย์ตามลำดับนั่นคือพารามิเตอร์แรกจะถูกแทรกเข้าไปด้านหน้า ดังในตัวอย่างข้างต้น "A" ถูกแทรกเป็นครั้งแรก "B" ถูกแทรกเป็นครั้งที่สองและมีหลายคำหลายคำเมื่อครั้งที่สาม แต่คำสั่งซื้ออยู่ด้านหน้าและ d ที่ด้านหลัง
5. วิธีการสั่งซื้อใหม่
มีสองวิธีที่ใช้โดยตรงสำหรับการจัดลำดับใหม่ในอาร์เรย์
วิธีการย้อนกลับ ()
เมธอด reverse () จะกลับลำดับของรายการอาร์เรย์
ค่า var = [1,2,3,4,5]; ค่า. Reverse (); การแจ้งเตือน (ค่า); // 5,4,3,2,1
เรียงลำดับ () วิธีการ
โดยค่าเริ่มต้นวิธีการเรียงลำดับ () จัดเรียงรายการอาร์เรย์ตามลำดับจากน้อยไปมาก เพื่อให้ได้การเรียงลำดับ วิธีการเรียงลำดับ () เรียกใช้วิธีการแปลง TOSTRING () ของแต่ละรายการอาร์เรย์จากนั้นเปรียบเทียบสตริงผลลัพธ์ ดังนั้น วิธีการเรียงลำดับ () เปรียบเทียบสตริง
ค่า var = [3,5,53,2,34]; value.sort (); การแจ้งเตือน (ค่า); // 2,3,34,5,53
อย่างไรก็ตามเราสามารถพูดได้ว่าการเรียงลำดับนี้ไม่มีความหมายและสิ่งที่เราต้องการคือการเรียงลำดับค่าตัวเลข วิธีการเรียงลำดับ () สามารถรับฟังก์ชั่นการเปรียบเทียบเป็นอาร์กิวเมนต์ เพื่อระบุกฎการเรียงลำดับ
ฟังก์ชั่นการเปรียบเทียบได้รับพารามิเตอร์สองตัวส่งคืนหมายเลขลบหากพารามิเตอร์แรกควรเป็นก่อนพารามิเตอร์ที่สองจะส่งคืน 0 หากพารามิเตอร์ทั้งสองเท่ากันและส่งกลับหมายเลขบวกหากพารามิเตอร์แรกคือหลังจากพารามิเตอร์ที่สอง
ฟังก์ชั่นเปรียบเทียบ (ค่า 1, value2) {ถ้า (ค่า 1 <ค่า 2) {return -1; } อื่นถ้า (value1> value2) {return 1; } else {return 0; }} ค่า var = [3,5,53,2,34]; value.sort (เปรียบเทียบ); การแจ้งเตือน (ค่า); // 2,3,4,34,536. วิธีการดำเนินการ
วิธีการ concat ()
สามารถสร้างอาร์เรย์ใหม่ได้ตามรายการทั้งหมดในอาร์เรย์ปัจจุบัน วิธีนี้สร้างสำเนาของอาร์เรย์ปัจจุบันเพิ่มพารามิเตอร์ไปยังจุดสิ้นสุดของสำเนาและส่งคืนอาร์เรย์ที่สร้างขึ้นใหม่ หากมีการส่งอาร์เรย์อย่างน้อยหนึ่งรายการไปยังเมธอด concat () แต่ละรายการในอาร์เรย์จะถูกเพิ่มลงในอาร์เรย์
var array = ["a", "b", "c"]; var arrays2 = arrays.concat ("d", ["e", "fe"]); แจ้งเตือน (อาร์เรย์); // a, b, calert (arrays2); // a, b, c, d, e, fSlice () วิธีการ
สร้างอาร์เรย์ใหม่ตามหนึ่งรายการขึ้นไปในอาร์เรย์ปัจจุบัน วิธี Slice () สามารถรับพารามิเตอร์หนึ่งหรือสองตัวได้เช่น ตำแหน่งเริ่มต้นและสิ้นสุด ของรายการที่จะส่ง คืน เมื่อมีพารามิเตอร์เดียวเท่านั้นมันจะส่งคืนรายการทั้งหมดจากรายการเริ่มต้นไปยังจุดสิ้นสุดของอาร์เรย์ เมื่อมีพารามิเตอร์สองตัวจะส่งคืนรายการระหว่างตำแหน่งเริ่มต้นและตำแหน่งสิ้นสุด (ไม่รวมรายการสุดท้าย) วิธี Slice () จะไม่ส่งผลกระทบต่ออาร์เรย์ดั้งเดิม
Var Cities = ["Beijing", "Shanghai", "Shenzhen", "Guangzhou"]; Var Cities2 = Cities.slice (1); Var Cities3 = Cities.slice (1,3); แจ้งเตือน (Cities2); // เซี่ยงไฮ้, เซินเจิ้น, กวางโจวแจ้งเตือน (CITES3); // เซี่ยงไฮ้เซินเจิ้น
วิธีการประกบ ()
วิธีการ splice () ส่วนใหญ่ใช้เพื่อแทรกรายการลงในกลางอาร์เรย์และมี 3 วิธีในการใช้งาน:
•การลบสามารถลบจำนวนรายการใด ๆ ระบุพารามิเตอร์ 2 รายการ: รายการแรกที่จะลบและจำนวนรายการที่จะลบเช่น: Splice (1,3) จะลบรายการที่ 2, 3 และ 4 ในอาร์เรย์
Var Cities = ["Beijing", "Shanghai", "Shenzhen", "Guangzhou"]; Cities.splice (1,3); Alert (เมือง); // ปักกิ่ง
•แทรกคุณสามารถแทรกจำนวนรายการใด ๆ ลงในตำแหน่งที่ระบุ ระบุ 3 พารามิเตอร์: ตำแหน่งเริ่มต้น 0 (จำนวนรายการที่จะลบ) และรายการที่จะแทรก
Var Cities = ["Beijing", "Shanghai", "Shenzhen", "Guangzhou"]; Cities.splice (1,0, "Hongkong"); Alert (เมือง); // ปักกิ่ง, ฮ่องกง, เซี่ยงไฮ้, เซินเจิ้น, กวางโจว
•แทนที่รายการที่สามารถแทนที่ตำแหน่งที่ระบุ ระบุพารามิเตอร์ 3 ตัว: ตำแหน่งเริ่มต้นรายการที่จะลบและรายการใด ๆ ที่จะแทรก
Var Cities = ["Beijing", "Shanghai", "Shenzhen", "Guangzhou"]; Cities.splelice (1,2, "Hongkong"); Alert (เมือง); // ปักกิ่ง, ฮ่องกง, กวางโจว
7. วิธีการตำแหน่ง
มีวิธีการสองตำแหน่งใน JavaScript: Method () วิธีการและวิธี LastIndexof () ทั้งสองวิธีได้รับสองพารามิเตอร์: รายการที่จะพบและดัชนี (ไม่บังคับ) ระบุตำแหน่งของจุดเริ่มต้นการค้นหา
วิธีการดัชนี () หมายถึงการมองย้อนกลับจากจุดเริ่มต้นของอาร์เรย์ในขณะที่ LastIndexof () เริ่มต้นจากจุดสิ้นสุดของอาร์เรย์ พวกเขาทั้งหมดส่งคืนตำแหน่งของรายการที่พบในอาร์เรย์และ -1 หากไม่พบ ความสอดคล้องกันจะใช้เมื่อเปรียบเทียบพารามิเตอร์แรกกับแต่ละรายการในอาร์เรย์
var nums = [1,2,3,4,5,6]; แจ้งเตือน (nums.indexof (3)); // 2Alert (nums.lastindexof (5)); // 4Alert (nums.indexof (3,1)); // 2Alert (nums.lastindexof (4,4)); // 3
8. วิธีการวนซ้ำ
JavaScript มีวิธีการวนซ้ำ 5 วิธีสำหรับอาร์เรย์ แต่ละวิธีได้รับสองพารามิเตอร์: ฟังก์ชั่นที่จะเรียกใช้ในแต่ละรายการและ (ไม่บังคับ) วัตถุขอบเขตที่เรียกใช้ฟังก์ชัน - ส่งผลกระทบต่อค่าของสิ่งนี้ พารามิเตอร์ที่ต้องส่งผ่าน: ค่าของรายการอาร์เรย์ตำแหน่งของรายการในอาร์เรย์และอาร์เรย์วัตถุเอง
•ทุก (): รันฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์และหากจำนวนแถวส่งคืนจริงสำหรับแต่ละรายการมันจะกลับมาจริง
•ตัวกรอง (): เรียกใช้ฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์และส่งคืนอาร์เรย์ที่ประกอบด้วยรายการที่จะส่งคืนจริง
• foreach (): รันฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์โดยไม่ต้องส่งคืนค่า
• MAP (): ฟังก์ชั่นที่ประกอบด้วยการรันฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์โดยส่งคืนผลลัพธ์ของการเรียกใช้ฟังก์ชันแต่ละรายการ
•บาง (): รันฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์ หากรายการใด ๆ ที่ส่งคืนจริงฟังก์ชั่นจะส่งกลับจริง
ไม่มีวิธีการข้างต้นใด ๆ ที่จะแก้ไขค่าที่มีอยู่ในอาร์เรย์
9. วิธีการผสาน
มีสองวิธีในการรวมอาร์เรย์ใน JavaScript: ลด () และ reduceright () ทั้งสองวิธีทำซ้ำรายการทั้งหมดของอาร์เรย์จากนั้นสร้างค่าที่ส่งคืนสุดท้าย โดยที่วิธีการลด () เริ่มต้นจากรายการแรกของอาร์เรย์และ reduceright () เริ่มต้นจากรายการสุดท้ายของอาร์เรย์
พวกเขาทั้งสองสามารถได้รับพารามิเตอร์สองตัว: ฟังก์ชั่นที่เรียกว่าในแต่ละรายการและ (ไม่บังคับ) เป็นค่าเริ่มต้นของฐานผสาน ฟังก์ชั่นที่ส่งผ่านเพื่อลด () และ REDUCERIGHT () ได้รับ 4 พารามิเตอร์: ค่าก่อนหน้าค่าปัจจุบันดัชนีของรายการและวัตถุอาร์เรย์ ค่าใด ๆ ที่ส่งคืนโดยฟังก์ชั่นนี้จะถูกส่งผ่านไปยังรายการถัดไปโดยอัตโนมัติเป็นพารามิเตอร์แรก การทำซ้ำครั้งแรกเกิดขึ้นในเทอมที่สองของอาร์เรย์ดังนั้นพารามิเตอร์แรกคือเทอมแรกของอาร์เรย์และพารามิเตอร์ที่สองเป็นเทอมที่สองของอาร์เรย์
ค่า var = [1,2,3,4,5]; var sum = values.reduce (ฟังก์ชัน (ก่อนหน้า, cur, ดัชนี, อาร์เรย์) {return prev+cur;}); Alert (sum); // 15ครั้งแรกที่ฟังก์ชั่นการโทรกลับถูกดำเนินการก่อนหน้านี้คือ 1 และ CUR คือ 2 ครั้งที่สองก่อนหน้านี้คือ 3 (1+2), CUR คือ 3 (ค่าของเทอมที่สามของอาร์เรย์) โดยรู้ว่าแต่ละรายการเข้าถึงได้
REDUCERIGHT () มีฟังก์ชั่นที่คล้ายกัน แต่ทิศทางตรงข้าม
การวิเคราะห์ที่ครอบคลุมของ JavaScript: ประเภทอาร์เรย์คือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น