JavaScriptの配列タイプは、他の言語の配列とは大きく異なります。 JavaScriptの各アイテムは、あらゆる種類のデータを保持できます。さらに、 JavaScriptアレイのサイズは動的に調整でき、新しいデータに対応するためにデータが追加されると自動的に成長できます。
配列を作成するには、2つの基本的な形式があります。
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、2番目の用語は1など)、以下に示すように:
var Cities = ["Shanghai"、 "Beijing"、 "Shenzhen"]; alert(Cities [0]); //「上海 "都市[1] =" Hongkong "; // 2番目のアイテムを「北京」を「香港」都市に変更します[3] = "Taiwan" //新しいアイテムを追加します
配列内のアイテムの数は長さのプロパティに保存され、読み取り専用ではありません。したがって、長さプロパティを設定することにより、配列の端からアイテムを削除したり、アレイに新しいアイテムを追加したりできます。
var Cities = ["Shanghai"、 "Beijing"、 "Shenzhen"]; Cities.length = 2; alert(Cities [2]); // 未定義
長さのこのプロパティを使用すると、配列の最後に新しいアイテムを追加できます。
var Cities = ["Shanghai"、 "Beijing"、 "Shenzhen"]; Cities [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()); //上海、北京、Shenzhenert(cities.valueof()); //上海、北京、Shenzhenert(都市); //上海、北京、Shenzhenert(都市); //上海、北京、深セン
注:arert()は文字列パラメーターを受信する必要があるため、バックグラウンドでtoString()メソッドを呼び出すため、toString()メソッドを直接呼び出すことで同じ結果が得られます。
さらに、tolocalestring()メソッドは、多くの場合、toString()およびvalueof()と同じ値を返します。違いは、各アイテムの値を取得するために、toString ()メソッドではなく、各アイテムのtolocalestring()メソッドが呼び出されることです。例えば:
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); alert(p.toString()); alert(p.tolocalestring());結果は、Tostringメソッドが1行目と2番目の行で呼び出され、Tolocalestringメソッドが3行目で呼び出されることを示しています。
アレイによって継承されたtolocalestring()、toString()、およびvalueof()メソッドは、デフォルトでコンマ分離された文字列の形で配列アイテムを返します。 Join()メソッドを使用すると、異なる文字を使用して文字列を分割し、すべての配列アイテムを含む文字列を返すことができます。
var Cities = ["Shanghai"、 "Beijing"、 "Shenzhen"]; alert(cities); //上海、北京、シェンツヘナート(Cities.Join( "、")); // Shanghai、Beijing、Shenzhenert(Cities.Join( "|")); // Shanghai |北京| Shenzhen
3。スタックメソッド
スタックは最終的なファーストアウト(LIFO)データ構造であり、スタック内のデータ項目の挿入と削除は、スタックの上部でのみ発生する可能性があります。 JavaScriptアレイは、スタックのような動作を実装するためのPush()およびPOP()メソッドを提供します。
push()メソッド
任意の数のパラメーターを使用して、配列の端に追加し、配列の長さを変更できます。
var params = new array(); var count = params.push( "a"、 "b"); alert(params); // a、balert(count); // 2
上記の例から、Push()メソッドによって返される挿入項の数があることがわかります。
pop()メソッド
アレイの端から最後のアイテムを削除し、配列の長さを短縮し、削除されたアイテムを返します。
var params = new array(); var count = params.push( "a"、 "b"、 "c"); var item = params.pop(); alert(item); // Calendart(params.length); // 2
4。キューメソッド
キューのデータ構造のアクセスルールはファーストインファーストアウト(FIFO)です。つまり、アイテムはキューの端から追加され、アイテムはキューのフロントエンドから削除されます。
Shift()メソッド
Shift()メソッドはJavaScriptで提供されます。これは、配列の最初のアイテムを削除してアイテムを返し、同時に配列の長さ属性を変更します。
var params = new array(); var count = params.push( "a"、 "b"、 "c"); var item = params.shift(); //最初のアイテムアラート(item)を取得します。 // aalert(params.length); // 2
unshift()メソッド
JavaScriptは、unshift()メソッドも提供します。これにより、アレイのフロントエンドに任意のアイテムを追加して、新しい配列の長さを返すことができます。
var params = new array(); var count1 = params.unshift( "a"); alert(count1); // 1alert(params); // avar count2 = params.unshift( "b"); alert(count2); // 2Alert(params); // b、avar count3 = params.unshift( "c"、 "d"); alert(params); // c、d、b、a
unshift()に一度に複数の項がある場合、これらの項を順番に配列に挿入することが観察されました。つまり、最初のパラメーターが前面に挿入されます。上記の例のように、「a」が初めて挿入され、「b」が2度目に挿入され、3回目は複数の用語がありますが、順序は前にc、背面はdです。
5。並べ替え方法
アレイでの並べ替えに直接使用される2つの方法があります。
Reverse()メソッド
逆()メソッドは、配列アイテムの順序を反転させます。
var値= [1,2,3,4,5]; values.reverse(); alert(values); // 5,4,3,2,1
sort()メソッド
デフォルトでは、sort()メソッドは配列アイテムを昇順で配置します。ソートを実現するために、 sort()メソッドは各配列アイテムのtoString()変換メソッドを呼び出し、結果の文字列を比較します。したがって、 sort()メソッドは文字列を比較します。
var値= [3,5,53,2,34]; values.sort(); alert(values); // 2,3,34,5,53
ただし、このソートは基本的に意味がなく、必要なのは数値を並べ替えることです。 sort()メソッドは、ソートルールを指定する引数として比較関数を受信できます。
比較関数は2つのパラメーターを受信し、最初のパラメーターが2番目のパラメーターの前にある場合は負の数値を返し、2つのパラメーターが等しい場合は0を返し、最初のパラメーターが2番目のパラメーターの後にある場合は正の数値を返します。
function compare(value1、value2){if(value1 <value2){return -1; } else if(value1> value2){return 1; } else {return 0; }} var values = [3,5,53,2,34]; values.sort(compare); alert(values); // 2,3,4,34,536。操作方法
concat()メソッド
現在の配列内のすべてのアイテムに基づいて、新しい配列を作成できます。このメソッドは、現在の配列のコピーを作成し、パラメーターをコピーの最後に追加し、新しく構築された配列を返します。 1つ以上の配列がconcat()メソッドに渡されると、配列内の各アイテムが配列に追加されます。
var arrays = ["a"、 "b"、 "c"]; var arrays2 = arrays.concat( "d"、["e"、 "fe"]); alert(arrays); // A、B、Calert(arrays2); // a、b、c、d、e、f
Slice()メソッド
現在の配列内の1つ以上のアイテムに基づいて新しい配列を作成します。 Slice()メソッドは、1つまたは2つのパラメーター、つまり返されるアイテムの開始位置と終了位置を受信できます。パラメーターが1つしかない場合、すべてのアイテムを開始項目から配列の最後まで返します。 2つのパラメーターがある場合、開始位置とエンド位置の間にアイテムを返します(エンドアイテムを除く)。 Slice()メソッドは、元の配列に影響しません。
var cities = ["beijing"、 "shanghai"、 "shenzhen"、 "guangzhou"]; var cities2 = cities.slice(1); var cities3 = cities.slice(1,3); alert(cities2); //上海、深セン、広州警告(Cities3); //上海、深セン
Splice()メソッド
Splice()メソッドは、主にアレイの中央にアイテムを挿入するために使用され、それを使用する3つの方法があります。
•削除は任意の数のアイテムを削除でき、2つのパラメーターを指定できます。削除する最初のアイテムと削除するアイテムの数。
var Cities = ["Beijing"、 "Shanghai"、 "Shenzhen"、 "Guangzhou"]; Cities.splice(1,3); alert(cities); //北京
•挿入指定された位置に任意の数のアイテムを挿入できます。 3つのパラメーターを指定します:開始位置、0(削除するアイテムの数)、および挿入するアイテム
var Cities = ["Beijing"、 "Shanghai"、 "Shenzhen"、 "Guangzhou"]; Cities.splice(1,0、 "Hongkong"); alert(Cities); //北京、香港、上海、深Shenzhen、広州
•指定された位置を交換できるアイテムを交換します。 3つのパラメーターを指定します:開始位置、削除するアイテム、および挿入するアイテム。
var Cities = ["Beijing"、 "Shanghai"、 "Shenzhen"、 "Guangzhou"]; Cities.splice(1,2、 "Hongkong"); alert(Cities); //北京、香港、広州
7。位置法
JavaScriptには、indexof()メソッドとlastIndexof()メソッドの2つの位置的メソッドがあります。どちらの方法でも、見つけるアイテムと(オプションの)インデックスを検索開始点の位置を示す2つのパラメーターを受け取ります。
indexof()メソッドは、配列の先頭から後方に見えることを意味し、lastIndexof()は配列の端から始まります。それらはすべて、配列にあるアイテムの位置を返し、発見されていない場合は-1を返します。最初のパラメーターを配列内の各アイテムと比較すると、合同が使用されます。
var nums = [1,2,3,4,5,6]; alert(nums.indexof(3)); // 2Alert(nums.lastindexof(5)); // 4alert(nums.indexof(3,1)); // 2Alert(nums.lastindexof(4,4)); // 3
8。反復方法
JavaScriptは、アレイに5つの反復方法を提供します。各メソッドは、各アイテムで実行する関数と(オプション)関数を実行するスコープオブジェクト - これの値に影響するスコープオブジェクトの2つのパラメーターを受信します。渡す必要があるパラメーター:配列アイテムの値、配列内のアイテムの位置、および配列オブジェクト自体。
•すべて():配列内の各アイテムで特定の関数を実行し、各アイテムの行の数がtrueを返す場合、trueが返されます。
•filter():配列内の各アイテムで特定の関数を実行し、trueを返すアイテムで構成される配列を返します。
•foreach():値を返すことなく、配列内の各アイテムで特定の関数を実行します
•Map():配列内の各アイテムで特定の関数を実行し、各関数呼び出しの結果を返すことで構成される関数。
•some():配列内の各アイテムで特定の関数を実行します。いずれかのアイテムがtrueを返す場合、関数はtrueを返します。
上記のメソッドのいずれも、配列に含まれる値を変更しません。
9。マージメソッド
JavaScriptにアレイをマージするには、decimen()とreduceright()の2つの方法があります。どちらの方法も、配列のすべてのアイテムを反復し、最終的な返された値を構築します。ここで、redoce()メソッドは配列の最初のアイテムから始まり、recuright()は配列の最後のアイテムから始まります。
両方とも2つのパラメーターを受信できます。各アイテムで呼び出される関数と(オプション)マージベースの初期値として(オプション)。関数は、()reduceright()を減少させ、reduceright()を受信して、前の値、現在の値、アイテムのインデックス、および配列オブジェクトの4つのパラメーターを受け取ります。この関数によって返される値は、最初のパラメーターとして次のアイテムに自動的に渡されます。最初の反復は配列の2番目の項で発生するため、最初のパラメーターは配列の最初の項で、2番目のパラメーターは配列の2番目の項です。
var値= [1,2,3,4,5]; var sum = values.reduce(function(prev、cur、index、array){return prev+cur;}); alert(sum); // 15コールバック関数が初めて実行されるのは、前では1、CURは2です。2回目は3(1+2)、CURは3(アレイの3番目の用語の値)で、各アイテムがアクセスされることを知っています。
Reduceright()には同様の関数がありますが、方向は反対です。
JavaScriptの上記の包括的な分析:配列タイプは、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。