前の言葉
文字列と配列には多くの類似点があります。それらには多くの方法があり、非常に似ています。しかし、それらには違いがあります。文字列は不変の値であるため、読み取り専用アレイと見なすことができます。この記事では、文字列と配列の同様の方法を比較します
インデックス可能
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]); // un definedConsole.log(arr [-1]); // undefinedConsole.log(arr [nan]); // undefinedConsole.log(arr []); // report エラー
変換する
文字列は、split()メソッドを使用して配列に変換できます。 Arrayは、Join()メソッドを使用して文字列に変換できます
【スプリット()】
split()メソッドは、指定されたセパレーターに基づいて文字列を複数の文字列に分割し、結果を配列に配置します。セパレーターは文字列または正規表現にすることができます
この方法は、(オプション)2番目のパラメーターを受け入れて、配列のサイズを指定できます。 2番目のパラメーターが範囲0-Array.lengthの値である場合、指定されたパラメーターに応じて出力し、すべての出力が他の場合に結果を出力します。
指定された区切り文字が文字列に表示されない場合、元の文字列の値は配列として返されます。
var colortext = '赤、青、緑、黄色'; console.log(colortext.split( '')); // ["r"、 "e"、 "d"、 "、"、 "b"、l "、" u "、" e "、" e "e" e "、"、 "g"、r "e"、 "l"、 "l"、 "l"、 "o"、 "w"] console.log(colortext.split( '、')); // ["red"、blue "、" green "、" yellow "] console.log(colortext.split( '、2)); "blue"] console.log(colortext.split( '、'、6)); // ["red"、 "blue"、 "green"、 "Yellow"] console.log(colortext.split( ' - ')); "yellow"] console.log(colortext.split(/e/)); // ["r"、 "d、blue"、 "、gr"、 "、" n、y "、" llow "] console.log(colortext.split(/[^/、]+/)); ["、"、 "、"、 "、"、 "
【参加する()】
Join()メソッドは、異なるデリミターを使用してこの文字列を構築できます。 Join()メソッドは、デリミッターとして使用される1つのパラメーターのみを受信し、すべての配列アイテムを含む文字列を返します。
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('-');//'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------配列内のアイテムの値がnullまたは未定義の場合、値は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'
スプライシング
文字列と配列は、スプライシング方法を共有しますconcat()
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'])); ["hello"、 "world"] console.log(value.concat(['world']))); ["world"] console.log(value.concat(['world']])); // ["hello"、["world"]]]
作成する
文字列と配列の両方には、作成方法スライス()があり、それぞれサブストリングとサブアレイを作成するために使用されます。
Slice()メソッドは、現在の配列(または文字列)の1つ以上のアイテムに基づいて新しい配列(または文字列)を作成し、1つまたは2つのパラメーター、つまりアイテムの開始位置と終了位置を返し、最終的に新しい配列(または文字列)を返します。
スライス(START、END)メソッドには、2つのパラメーターが開始と終了を必要とします。これは、開始位置からサブアレイ(または文字列)をこのアレイ(または文字列)の終了位置に戻します(または弦)。終了が未定義の場合、または存在しない場合、すべてのアイテムを開始位置から配列(または文字列)の最後まで返します。
開始が負の数の場合、start = max(length + start、0)
終了が負の数の場合、end = max(length + end、0)
開始と終了は、位置を交換できません
var番号= [1,2,3,4,5]; console.log(numbers.slice(2)); // [3,4,5] console.log(numbers.slice(2、undefined)); // [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)); // max(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)); 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); /////////// console.log(StringValue.slice(-2,20)); // 'ld'Console.log(StringValue.slice(-20,2)); //' He'Console.log(StringValue.slice(-20、-2));
位置
文字列と配列の両方に、indexof()とlastIndexof()の位置を見つける2つの方法があります。位置法は、括弧[]読み取り方法の正反対です。 1つはアイテムを介してインデックスを見つけることであり、もう1つはインデックスを介してアイテムを見つけることです。
【indexof()】
indexof(検索、開始)メソッドは2つのパラメーター検索と開始を受信し、検索が最初に表示される場所を返します。
文字列内の検索パラメーターは、文字列()変換関数を呼び出して、パラメーターの非弦値を文字列に変換します。一方、配列内の検索パラメーターは、厳密な等式演算子を使用して比較されます(===)
それが配列であろうと文字列であろうと、2番目のパラメーターの開始は数値()変換関数を暗黙的に呼び出し、開始非数値値(未定義を除く)を数値に変換します。このパラメーターが無視されている場合、またはパラメーターが未定義またはnanの場合、start = 0
開始パラメーターが負の数値の場合、文字列の処理は= 0を開始することです。配列の処理は= max(0、start+length)を開始することです
var string = 'hello world world '; console.log(string.indexof(' ld ')); // 9console.log(string.indexof(' ld '、undefined)); // 9console.log(string.indexof(' ld '、nan)))); ring.indexof( 'ld'、 - 1)); // 9console.log(string.indexof( 'ld'、 - 1)); // 9console.log(string.indexof( 'ld'、-1) console.log(string.indexof( 'ld'、10)); // 15console.log(string.indexof( 'ld'、[10])); // 15console.log(string.index of( 'True'、[10]));
var arr = ['a'、 'b'、 'c' '、' d '、' e '、' a '、' b ']; console.log(arr.indexof(' a '、undefined)); 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(検索、開始)メソッドは2つのパラメーター検索と開始を受信し、SearchStringが最初に表示される場所を返します。
同様に、文字列内の検索パラメーターは、文字列()変換関数を呼び出して、パラメーターの非弦値を文字列に変換します。一方、アレイ内の検索パラメーターは、厳密な平等演算子を使用して比較されます(===)
それが配列であろうと文字列であろうと、2番目のパラメーター開始は数値()変換関数を暗黙的に呼び出し、開始非数値値(未定義を除く)を数値に変換します。
このパラメーターが無視されている場合、またはパラメーターが未定義またはNANの場合、文字列の処理はstart = length -1;配列の処理が開始= 0である間
開始パラメーターが負の数値の場合、文字列の処理は= 0を開始することです。配列の処理は= max(0、start+length)を開始することです
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]))
var arr = [1,2,3、 '1'、 '2'、 '3']; console.log(arr.lastindexof( '2')); // 4console.log(arr.lastindexof(3)); // 2console.log(arr.lastindexof(0)); //-1var arr = ['a'、 'b'、 'c' '、' d '、' e '、' a '、' b ']; console.log(arr.lastindexof(' b ')); 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をもっとサポートできることを願っています。