الكلمات السابقة
السلاسل والصفائف لها العديد من أوجه التشابه. لديهم العديد من الأساليب ومتشابهون للغاية ؛ لكن لديهم اختلافات. الأوتار هي قيم غير قابلة للتغيير ، بحيث يمكن اعتبارها صفائف للقراءة فقط. تقارن هذه المقالة طرقًا متشابهة للسلاسل والصفائف
فهرسة
يحدد ECMASCRIPT5 طريقة للوصول إلى الأحرف ، باستخدام قوسين مربع بالإضافة إلى فهارس رقمية للوصول إلى أحرف محددة في سلسلة
أكبر فائدة من السلاسل القابلة للفهرسة هي أنها بسيطة ، حيث تحل محل مكالمات charat () بأقواس مربعة ، والتي تعد أكثر إيجازًا وقابلة للقراءة وربما أكثر كفاءة. ليس ذلك فحسب ، فإن حقيقة أن السلاسل تتصرف مثل المصفوفات تجعل طرق الصفيف المشتركة قابلة للتطبيق على الأوتار
إذا كانت المعلمة خارج النطاق أو نان ، فالإخراج غير المحدد
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]) ؛ // un definedConsole.log (arr [-1]) ؛ // undefinedconsole.log (arr [nan]) ؛ // undefinedConsole.log (arr []) ؛ // report خطأ
يتحول
يمكن تحويل السلاسل إلى صفائف باستخدام طريقة split () ؛ يمكن تحويل المصفوفات إلى سلاسل باستخدام طريقة Join ()
【ينقسم()】
تقسم طريقة SPLIT () سلسلة إلى سلاسل متعددة بناءً على الفاصل المحدد وتضع النتيجة في صفيف. يمكن أن يكون الفاصل سلسلة أو تعبير منتظم
يمكن أن تقبل هذه الطريقة (اختياري) معلمة ثانية لتحديد حجم الصفيف. إذا كانت المعلمة الثانية عبارة عن قيمة في النطاق 0-array.length ، فإن الإخراج وفقًا للمعلمة المحددة ، وإخراج جميع النتائج في حالات أخرى.
إذا لم يظهر المحدد المحدد في السلسلة ، فسيتم إرجاع قيمة السلسلة الأصلية كصفيف.
var colortext = 'Red ، Blue ، Green ، Yellow' ؛ Console.log (colortext.split ('')) ؛ // ["r" ، "e" ، "d" ، "،" b "،" l "،" u "،" e "،" e "،" e "، "e" ، "l" ، "l" ، "l" ، "o" ، "w"] console.log (colortext.split ('،')) ؛ // ["Red" ، "Blue" ، "Green" ، "Yellow". "Blue"] console.log (colortext.split ('،' ، 6)) ؛ "Yellow"] console.log (colortext.split (/e/)) ؛ // ["r" ، "d ، blue" ، "، gr" ، "،" n ، y "،" llow "] console.log (colortext.split (/[^/، سوف يتعرف على ["،" ، "،" ، "،" ، "]【ينضم()】
يمكن أن تستخدم طريقة Join () المحددات المختلفة لبناء هذه السلسلة. تستقبل طريقة Join () معلمة واحدة فقط ، والتي يتم استخدامها كمحدد ، ثم تقوم بإرجاع سلسلة تحتوي على جميع عناصر الصفيف.
إذا لم يتم تمرير أي قيمة إلى طريقة Join () ، فاستخدم فاصلة كفاصل
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 = new Array (10) ؛ B.Join ('-') ؛ // '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------إذا كانت قيمة عنصر في الصفيف لاغية أو غير محددة ، يتم تمثيل القيمة كسلسلة فارغة في النتيجة التي تم إرجاعها بواسطة طريقة Join ()
var colors = [1 ، undefined ، 2 ، null ، 3] ؛ console.log (colors.join ()) ؛ // '1 ، ، 2 ، ، 3'
نظرًا لأن السلاسل عبارة عن كائنات صفيف ، يمكنك أيضًا استخدام طريقة Join ()
console.log (array.prototype.join.call ('hello' ، '-')) ؛ // "Hello" var str = 'test' ؛ var arr = str.split ('') // ["t" ، "e" ، "s" ، "t"] console.log (arr.join ('-')) ؛ // 'tes-t'الربط
السلاسل والصفائف تشترك
var value = 'hello' ؛ console.log (value.concat ('World')) ؛ // 'HelloWorld'console.log (value.concat ([' world '])) ؛ var value = ['hello'] ؛ console.log (value.concat ('world')) ؛ // ["hello" ، "world"] console.log (value.concat (['world'])) ؛ ["world"] console.log (value.concat ([['World']])) ؛ // ["Hello" ، ["World"]]يخلق
كل من السلاسل والصفائف لها طريقة إنشاء Slice () ، والتي تستخدم لإنشاء فرعية وطباعات فرعية على التوالي.
تقوم طريقة الشريحة () بإنشاء صفيف جديد (أو سلسلة) استنادًا إلى عنصر واحد أو أكثر في الصفيف الحالي (أو السلسلة) ، يقبل معلمًا أو معلمتين ، أي لإرجاع المواضع البدء والنهاية للعنصر ، وأخيراً إرجاع المصفوفة الجديدة (أو السلسلة)
تتطلب طريقة Slice (START ، END) معلمتين بدءًا ونهاية ، والتي تُرجع جهازًا فرعيًا (أو سلسلة) من موضع البدء إلى (ولكن لا يحتوي) في الموضع النهائي في هذه الصفيف (أو السلسلة). إذا كانت النهاية غير محددة أو غير موجودة ، فإنها تُرجع جميع العناصر من موضع البداية إلى نهاية الصفيف (أو السلسلة).
إذا كان البدء رقمًا سالبًا ، ابدأ = الحد الأقصى (الطول + البدء ، 0)
إذا كانت النهاية عبارة عن رقم سالب ، end = max (length + end ، 0)
لا يمكن للبدء والنهاية تبادل المواقف
أرقام var = [1،2،3،4،5] ؛ console.log (number.slice (2)) ؛ // [3،4،5] console.log (number.slice (2 ، undefined)) ؛ // [3،4،5] consol e.log (number.slice (2،3)) ؛ // [3] console.log (number.slice (2،1)) ؛ // [] console.log (number.slice (-3)) ؛ //-3+5 = 2 -> [3،4،5] console.log (number.slice (-8)) ؛ // max (5 + -8،0) = 0 -> [1،2،3،4،5] console.log (number.slice (0 ، -3)) ؛ // -3 + 5 = 2 -> [1،2] console.log (number.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)) ؛ 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)) ؛ // 'hello wor'
موقع
كل من السلاسل والصفائف لها طريقتان للعثور على مواقف: indexof () و LastIndExof (). طريقة الموضع هي بالضبط عكس الأقواس [] طريقة القراءة. أحدهما هو العثور على الفهرس من خلال العنصر ، والآخر هو العثور على العنصر من خلال الفهرس.
【indexof ()】
تستقبل طريقة indexof (Search ، START) بحثين وبدء معلمتين ، وإعادة الموقع حيث يظهر البحث أولاً ، وإذا لم يتم العثور عليه ، فإنه يعود -1
سوف تستدعي معلمة البحث في السلسلة وظيفة تحويل السلسلة () لتحويل القيمة غير السلسلة للمعلمة إلى سلسلة ؛ بينما ستتم مقارنة معلمة البحث في الصفيف باستخدام مشغل المساواة الصارم (===)
سواء كانت صفيفًا أو سلسلة ، فإن بداية المعلمة الثانية ستستدعي ضمنيًا وظيفة التحويل الرقم () ، وتحويل القيمة غير الرقمية (باستثناء غير محددة) إلى قيم رقمية ؛ إذا تم تجاهل هذه المعلمة أو أن المعلمة غير محددة أو NAN ، ابدأ = 0
إذا كانت المعلمة START هي رقم سالب ، فإن معالجة السلسلة هي البدء = 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 (string.indexof (' ld '،-1) 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 of ('true' ، [10])) ؛ //-1console.log (string.indexof (false ، [10])) ؛ //-1console.log (string.indexof (false ، [10])) ؛ //-1 var arr = ['a' ، 'b' ، 'c' ، 'd' ، 'e' ، 'a' ، 'b'] 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)) ؛ // max (0 ، -5+7) = 2 ؛ 5Console.log (arr.indexof ('a' ،-50)) ؛ // max (0 ، -50+7) = 0 ؛ 0【LastIndexof ()】
على عكس طريقة indexof () ، فإن طريقة LastIndexof () هي البحث عن اليمين إلى اليسار.
تتلقى طريقة LastIndExof (البحث ، البدء) معلمتين بحث وبدء ، وإرجاع الموقع حيث يظهر SearchString أولاً ، وإذا لم يتم العثور عليه ، فإنه يعود -1
وبالمثل ، فإن معلمة البحث في سلسلة تستدعي وظيفة تحويل السلسلة () لتحويل قيمة غير السلسلة للمعلمة إلى سلسلة ؛ بينما تتم مقارنة معلمة البحث في الصفيف باستخدام مشغل المساواة الصارم (===)
سواء كانت صفيفًا أو سلسلة ، ستستدعي بداية المعلمة الثانية ضمنيًا وظيفة التحويل () ، وتحويل القيم غير الرقمية (باستثناء غير محددة) إلى قيم رقمية.
إذا تم تجاهل هذه المعلمة أو أن المعلمة غير محددة أو NAN ، فإن معالجة السلسلة هي start = length - 1 ؛ في حين أن معالجة الصفيف هي البدء = 0
إذا كانت المعلمة START هي رقم سالب ، فإن معالجة السلسلة هي البدء = 0 ؛ في حين أن معالجة المصفوفة ستبدأ = أقصى (0 ، ابدأ+طول)
var string = 'Hello World World '؛ console.log (string.lastindexof (' ld ')) ؛ // 15console.log (string.lastindexof (' ld '، غير محدد)) ؛ // 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 (false ، [10])) ؛ //-1 var arr = [1،2،3 ، '1' ، '2' ، '3'] ['a' ، 'b' ، 'c' ، 'd' ، 'e' ، 'a' ، 'b'] ؛ console.log (arr.lastindexof ('b')) ؛ // 6console.log (arr.lastindexof ('b' ، undefined)) ؛ ndefined)) 6console.log (arr.lastindexof ('b' ،-5)) ؛ // max (0 ، -5+7) = 2 ؛ 1console.log (arr.lastindexof ('b' ،-50)) ؛ // max (0 ، -50+7) = 0 ؛ -1المقارنة أعلاه للمصفوفات وطرق السلسلة في JavaScript هي كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.