คำก่อนหน้านี้
สตริงและอาร์เรย์มีความคล้ายคลึงกันมากมาย พวกเขามีวิธีการมากมายและคล้ายกันมาก แต่พวกเขามีความแตกต่าง สตริงเป็นค่าที่ไม่เปลี่ยนแปลงดังนั้นจึงถือได้ว่าเป็นอาร์เรย์แบบอ่านอย่างเดียว บทความนี้เปรียบเทียบวิธีการที่คล้ายกันของสตริงและอาร์เรย์
สามารถจัดทำดัชนีได้
ecmascript5 กำหนดวิธีการเข้าถึงอักขระโดยใช้วงเล็บเหลี่ยมรวมถึงดัชนีตัวเลขเพื่อเข้าถึงอักขระเฉพาะในสตริง
ประโยชน์ที่ใหญ่ที่สุดของสตริงที่สามารถจัดทำดัชนีได้คือพวกเขาง่าย ๆ แทนที่การโทร Charat () ด้วยวงเล็บเหลี่ยมซึ่งมีความกระชับมากขึ้นอ่านได้และมีประสิทธิภาพมากขึ้น ไม่เพียงแค่นั้นความจริงที่ว่าสตริงมีพฤติกรรมเหมือนอาร์เรย์ทำให้วิธีการอาร์เรย์ทั่วไปใช้ได้กับสตริง
หากพารามิเตอร์อยู่นอกช่วงหรือ NAN เอาต์พุตที่ไม่ได้กำหนดไว้
var str = "hello"; console.log (str [0]); // hconsole.log (str [[1]]); // econsole.log (str [false]); // undefinedconsole.log (str [-1]); // undefinedconsole.log (str [nan]
var arr = ['h', 'e', 'l', 'l', 'o']; console.log (arr [0]); // hconsole.log (arr [1]); // econsole.log (arr [false]); definedConsole.log (arr [-1]); // undefinedConsole.log (arr [nan]); // undefinedConsole.log (arr []); // รายงาน ข้อผิดพลาด
แปลง
สตริงสามารถแปลงเป็นอาร์เรย์โดยใช้วิธีแยก (); สามารถแปลงอาร์เรย์เป็นสตริงได้โดยใช้วิธีการเข้าร่วม ()
【แยก()】
วิธีการแยก () แบ่งสตริงออกเป็นหลายสตริงตามตัวคั่นที่ระบุและวางผลลัพธ์ในอาร์เรย์ ตัวคั่นอาจเป็นสตริงหรือนิพจน์ทั่วไป
วิธีนี้สามารถยอมรับ (ไม่บังคับ) พารามิเตอร์ที่สองเพื่อระบุขนาดของอาร์เรย์ หากพารามิเตอร์ที่สองเป็นค่าในช่วง 0-array.Length เอาต์พุตตามพารามิเตอร์ที่ระบุและเอาต์พุตผลลัพธ์ทั้งหมดในกรณีอื่น ๆ
หากตัวคั่นที่ระบุไม่ปรากฏในสตริงค่าของสตริงต้นฉบับจะถูกส่งคืนเป็นอาร์เรย์
var colortext = 'สีแดง, น้ำเงิน, สีเขียว, สีเหลือง'; console.log (colortext.split ('')); // ["r", "e", "d", ",", "b", "l", "u", "e", "e", "e", ",", "," "y", "e", "l", "l", "l", "o", "w"] console.log (colortext.split (',')); // ["สีแดง", "สีน้ำเงิน", "สีเขียว", "สีเหลือง" "blue"] console.log (colortext.split (',', 6)); // ["สีแดง", "สีน้ำเงิน", "สีเขียว", "สีเหลือง" console.log (colortext.split ('-'); "สีเหลือง"] console.log (colortext.split (/e/)); // ["r", "d, blue", ", gr", ",", "n, y", "llow"] console.log (colortext.split (/[^/,]+/); IE8- จะจำได้ว่า [",", ",", ",", ","]【เข้าร่วม()】
วิธีการเข้าร่วม () สามารถใช้ตัวคั่นที่แตกต่างกันเพื่อสร้างสตริงนี้ วิธีการเข้าร่วม () ได้รับเพียงหนึ่งพารามิเตอร์ซึ่งใช้เป็นตัวคั่นแล้วส่งคืนสตริงที่มีรายการอาร์เรย์ทั้งหมด
หากไม่มีค่าผ่านไปยังวิธีการเข้าร่วม () ให้ใช้เครื่องหมายจุลภาคเป็นตัวคั่น
var a = [1,2,3]; console.log (a.join ()); // '1,2,3'console.log (a.join (')); // '1 2 3'console.log (a.join (' ')); //' 123'var b = ใหม่ Array (10); B.Join ('-'); // '---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -หากค่าของรายการในอาร์เรย์เป็นโมฆะหรือไม่ได้กำหนดค่าจะถูกแสดงเป็นสตริงว่างในผลลัพธ์ที่ส่งคืนโดยวิธีการเข้าร่วม ()
var colours = [1, undefined, 2, null, 3]; console.log (colors.oin ()); // '1,, 2,, 3'
เนื่องจากสตริงเป็นวัตถุอาร์เรย์คุณยังสามารถใช้วิธีการเข้าร่วม ()
console.log (array.prototype.join.call ('สวัสดี', '-')); // "สวัสดี" var str = 'test'; var arr = str.split ('') // ["t", "e", "s", "t"] console.log (arr.join ('-')); // 'tes-t'การประกบกัน
สตริงและอาร์เรย์แบ่งปันวิธีการประกบ concat ()
var value = 'hello'; console.log (value.concat ('โลก')); // 'helloWorld'Console.log (value.concat ([' โลก '])); //' helloWorld'Console.log var value = ['hello']; console.log (value.concat ('World')); // ["hello", "World"] console.log (value.concat (['world'])); // ["hello", "World"] console.log ["World"] console.log (value.concat ([['World']))); // ["Hello", ["World"สร้าง
ทั้งสตริงและอาร์เรย์มีวิธีการสร้าง Slice () ซึ่งใช้ในการสร้าง substrings และ subarrays ตามลำดับ
เมธอด slice () สร้างอาร์เรย์ใหม่ (หรือสตริง) ตามหนึ่งรายการขึ้นไปในอาร์เรย์ปัจจุบัน (หรือสตริง) ยอมรับพารามิเตอร์หนึ่งหรือสองตัวนั่นคือเพื่อส่งคืนตำแหน่งเริ่มต้นและสิ้นสุดของรายการและในที่สุดก็ส่งคืนอาร์เรย์ใหม่ (หรือสตริง)
เมธอดชิ้นส่วน (เริ่มต้น) ต้องใช้พารามิเตอร์สองพารามิเตอร์เริ่มต้นและสิ้นสุดซึ่งส่งคืน subarray (หรือสตริง) จากตำแหน่งเริ่มต้นไปยังตำแหน่งสิ้นสุด (แต่ไม่มี) ในอาร์เรย์นี้ (หรือสตริง) หากปลายไม่ได้กำหนดหรือไม่มีอยู่จะส่งคืนรายการทั้งหมดจากตำแหน่งเริ่มต้นไปยังจุดสิ้นสุดของอาร์เรย์ (หรือสตริง)
หากเริ่มต้นเป็นจำนวนลบให้เริ่ม = สูงสุด (ความยาว + เริ่ม, 0)
ถ้าสิ้นสุดเป็นจำนวนลบ, end = สูงสุด (ความยาว + end, 0)
เริ่มต้นและสิ้นสุดไม่สามารถเปลี่ยนตำแหน่งได้
หมายเลข var = [1,2,3,4,5]; console.log (numbers.slice (2)); // [3,4,5] console.log (numbers.slice (2, ไม่ได้กำหนด)); // [3,4,5] consol e.log (numbers.slice (2,3)); // [3] console.log (numbers.slice (2,1)); // [] console.log (numbers.slice (-3)); //-3+5 = 2 -> [3,4,5] console.log (numbers.slice (-8)); // สูงสุด (5 + -8,0) = 0 -> [1,2,3,4,5] console.log (numbers.slice (0, -3)); // 3 + 5 = 2 -> [1,2] console.log (numbers.slice (-2, -1)); //-2+5 = 3; -1+5 = 4; -> [4]
var stringValue = 'hello world'; console.log (stringValue.slice ()); // 'Hello World'console.log (StringValue.slice (2)); //' llo World'console.log (stringValue.slice (20)); // ' world'console.log (StringValue.slice (2, -5)); // 'llo' console.log (StringValue.slice (2, -20)); // '' console.log (StringValue.slice (-2,2)); console.log (stringvalue.slice (-2,20)); // 'ld'console.log (StringValue.slice (-20,2)); //' he'console.log (StringValue.slice (-20, -2);
ที่ตั้ง
ทั้งสตริงและอาร์เรย์มีสองวิธีในการค้นหาตำแหน่ง: indexof () และ lastindexof () วิธีการตำแหน่งตรงข้ามกับวิธีการอ่าน [] หนึ่งคือการค้นหาดัชนีผ่านรายการและอื่น ๆ คือการค้นหารายการผ่านดัชนี
【ดัชนี () 】
indexof (ค้นหา, เริ่มต้น) ได้รับการค้นหาพารามิเตอร์สองตัวและเริ่มต้นกลับตำแหน่งที่การค้นหาปรากฏขึ้นครั้งแรกและหากไม่พบจะส่งกลับ -1
พารามิเตอร์การค้นหาในสตริงจะเรียกฟังก์ชันการแปลงสตริง () เพื่อแปลงค่าที่ไม่ใช่สตริงของพารามิเตอร์เป็นสตริง ในขณะที่พารามิเตอร์การค้นหาในอาร์เรย์จะถูกนำมาเปรียบเทียบโดยใช้ตัวดำเนินการความเท่าเทียมกันอย่างเข้มงวด (===)
ไม่ว่าจะเป็นอาร์เรย์หรือสตริงการเริ่มต้นพารามิเตอร์ที่สองจะเรียกฟังก์ชันการแปลงตัวเลข () โดยปริยายการแปลงค่าเริ่มต้นที่ไม่ใช่ตัวเลข (ยกเว้นไม่ได้กำหนด) เป็นค่าตัวเลข หากพารามิเตอร์นี้ถูกละเว้นหรือพารามิเตอร์ไม่ได้กำหนดหรือ NAN ให้เริ่ม = 0
หากพารามิเตอร์เริ่มต้นเป็นจำนวนลบการประมวลผลของสตริงจะเริ่มต้น = 0; ในขณะที่การประมวลผลของอาร์เรย์คือเริ่ม = สูงสุด (0, เริ่ม+ความยาว)
var string = 'Hello World World '; console.log (string.indexof (' ld ')); // 9console.log (string.indexof (' ld ', undefined)); // 9console.log (string.indexof (' ld ', nan)); // 9console.log ring.indexof ('ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9console.log (string.indexof ( 'ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9 console.log (string.indexof ('ld', 10)); // 15console.log (string.indexof ('ld', [10])); // 15console.log (string.index ของ ('true', [10])); //-1console.log (string.indexof (เท็จ, [10])); //-1console.log (string.indexof (เท็จ, [10])); //-1 var arr = ['a', 'b', 'c', 'd', 'e', 'a', 'b']; console.log (arr.indexof ('a', ไม่ได้กำหนด)); // 0console.log (arr.indexof ('a', nan)); e.log (arr.indexof ('a', 1)); // 5console.log (arr.indexof ('a', true)); // 5console.log (arr.indexof ('a',-1)); // max (0, -1+7) = 6; -1console.log (arr.indexof ('a',-5)); // สูงสุด (0, -5+7) = 2; 5console.log (arr.indexof ('a',-50)); // สูงสุด (0, -50+7) = 0; 0【 LastIndexof () 】
ตรงกันข้ามกับวิธีการดัชนี () วิธี LastIndexof () คือการค้นหาจากขวาไปซ้าย
เมธอด LastIndexof (Search, start) ได้รับการค้นหาพารามิเตอร์สองตัวและเริ่มต้นกลับตำแหน่งที่ SearchString ปรากฏขึ้นครั้งแรกและหากไม่พบ
ในทำนองเดียวกันพารามิเตอร์การค้นหาในสตริงเรียกใช้ฟังก์ชันการแปลงสตริง () เพื่อแปลงค่าที่ไม่ใช่สตริงของพารามิเตอร์เป็นสตริง ในขณะที่พารามิเตอร์การค้นหาในอาร์เรย์ถูกนำมาเปรียบเทียบโดยใช้ตัวดำเนินการที่เข้มงวด (===)
ไม่ว่าจะเป็นอาร์เรย์หรือสตริงการเริ่มต้นพารามิเตอร์ที่สองจะเรียกฟังก์ชันการแปลงตัวเลข () โดยปริยายการแปลงค่าเริ่มต้นที่ไม่ใช่ตัวเลข (ยกเว้นไม่ได้กำหนด) เป็นค่าตัวเลข
หากพารามิเตอร์นี้ถูกละเว้นหรือพารามิเตอร์ไม่ได้กำหนดหรือ NAN การประมวลผลของสตริงจะเริ่มต้น = ความยาว - 1; ในขณะที่การประมวลผลของอาร์เรย์เริ่มต้น = 0
หากพารามิเตอร์เริ่มต้นเป็นจำนวนลบการประมวลผลของสตริงจะเริ่มต้น = 0; ในขณะที่การประมวลผลของอาร์เรย์คือเริ่ม = สูงสุด (0, เริ่ม+ความยาว)
var string = 'Hello World World '; console.log (string.lastindexof (' ld ')); // 15console.log (string.lastindexof (' ld ', undefined)); // 15console.log (strin g.lastindexof ('ld', nan)); // 15console.log (string.lastindexof ('ld',-1)); //-1console.log (string.lastindexof ('h',-1)); // 0C onsole.log (string.lastindexof ('w', undefined)); // 12console.log (string.lastindexof ('ld', 10)); // 9console.log (string.last indexof ('ld', [10])); // 9console.log (string.lastindexof ('ld', [10])); //-1console.log (string.lastindexof (เท็จ, [10])); var arr = [1,2,3, '1', '2', '3']; console.log (arr.lastindexof ('2')); // 4console.log (arr.lastindexof (3)); // 2console.log (arr.lastindexof (0); ['a', 'b', 'c', 'd', 'e', 'a', 'b']; console.log (arr.lastindexof ('b')); // 6console.log ndefined)); // 0console.log (arr.lastindexof ('b', nan)); //-1console.log (arr.lastindexof ('b', 1)); // 1console.log 6console.log (arr.AltIctIndexof ('B',-5)); // สูงสุด (0, -5+7) = 2; 1console.log (arr.lastindexof ('b',-50)); // สูงสุด (0, -50+7) = 0; -1การเปรียบเทียบข้างต้นของอาร์เรย์และวิธีการสตริงใน JavaScript เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น