JavaScript-Arrayタイプ(ローカルオブジェクト)

元の配列を変更:逆、並べ替え、プッシュ、ポップ、シフト、シフト解除、スプライス
元の配列を変更しない:連結、結合、分割、スライス

ECMAScript配列の各項目は、任意のタイプのデータを保持できます。
配列のサイズは動的に調整できます。つまり、新しいデータに対応するためにデータを追加すると、配列のサイズが自動的に大きくなります。

配列を作成するには、2つの基本的な方法があります。

  1. 配列コンストラクターvar color = new Array(); var colors = new Array(20); length = 20
    保存されたアイテムの数が事前にわかっている場合は、その数をコンストラクターに渡すこともできます。配列に含める必要がある項目をArrayコンストラクターに渡すこともできます。
    var colors = new Array( "blue"、 "green"、 "red");
    Arrayコンストラクタを使用する場合、new演算子は省略できます
  2. 配列リテラル表記の使用配列リテラルは
    、配列項目を含む一対の角括弧で表され、複数の配列項目はコンマで区切られます。
    var colors = ["red"、 "blue"、 "block"];
    var name = [];空の配列を作成

配列の長さプロパティは非常に特徴的であり、読み取り専用ではありません。配列の最後から項目を削除するか、配列に新しい項目を追加できます。すべての新しい項目は未定義です。

instanceof演算子の問題は、グローバル実行環境が1つしかないことを前提としていることです。Webページに複数のフレームが含まれている場合、実際には3つ以上の異なるグローバル実行環境があるため、Arrayコンストラクターには3つ以上の異なるバージョンがあります。この問題を解決するために、ECMAScript5はArray.isArray()メソッドを追加しました。このメソッドの目的は、値が作成されたグローバル実行環境に関係なく、値が配列かどうかを最終的に判断することです。if(Array.isArray(値)){…}

換算方法

すべてのオブジェクトには、toLocationString()、toString()、およびvalueof()メソッドがあります。
配列のtoString()メソッドを呼び出すと、配列内の各文字列のコンマ区切りの文字列が返されます。
valueof()を呼び出すと
、文字列パラメーターを受け取る配列アラート()が返されるため、バックグラウンド
toString()メソッドが呼び出されると、配列のtoArrayString()メソッドも作成されます。 toString()メソッドではなく、配列のtoLocationString()メソッドを取得します。

スタック方式

スタックは後入れ先出しデータ構造です。スタック
へのアイテムの挿入(プッシュ)および削除(ポップ)は、スタックの最上部で発生するpush()およびpop()メソッドから変更された配列の長さを返します配列に追加された最後の
pop()を挿入すると、削除されたアイテムが返されます。配列の最後の要素を削除します

キュー方式

キュー方式、先入れ先出し、キューはリストの最後に項目を追加し、リストの先頭から項目を削除します
配列の先頭からアイテムシフト()を取得して、配列の最初のアイテムを削除し、アイテムを返します。
unshift()を削除して、配列の前に任意の数の項目を追加し、新しい配列の長さを返します。挿入

並べ替え方法

reverse()とsort()
sort()は、小さいものから大きいものへとソートし、各配列項目のtoString()メソッドを呼び出し、結果の文字列を比較し、
var値のソート方法を決定します= [0,1,5,10,15 ];
values.sort();
alert(values); // 0,1,10,15,5
sort()メソッドを呼び出すと、最適なソリューションの
sort()メソッドではなく、テスト文字列の結果に従って元の順序が変更されます比較関数をパラメーターとして受け取ることができるため、どの値がどの値の前にあるかを指定できます。

function compare(value1,value2){
	if(value1 < value2){
		return -1l
	}else if(value1 > value2){
		return 1;
	}else{
		return 0;
	}
}	
var values = [0,1,5,10,15];
values.sort(compare);
alert(values);//0,1,5,10,15

数値型またはそのvalueof()メソッドの場合、数値型のオブジェクト型を返します

function compare(value1,value2){
	return value2 - value1;
}

操作方法

  1. concat()メソッドは、まず現在の配列のコピーを作成し、受け取ったパラメーターをコピーの最後に追加し、最後に新しく構築された配列を返します。(含める、増やす)
  2. slice()メソッドは、1つまたは2つのパラメーター、つまり、返されるアイテムの開始と終了を受け取ります。(インターセプト)元の配列には影響しません
    1つのパラメーター、指定された位置から現在の配列の最後までのすべてのアイテムを
    返します2つのパラメーター、開始と終了の間のアイテムを返しますが、終了位置のアイテムは含みません
  3. splice()メソッドは、配列の中央にアイテムを挿入します
    Delete:2つのパラメーター、削除する最初のアイテムの位置、および削除するアイテムの数。splice(0,2)は最初の2つの
    アイテムを削除します挿入:3つのパラメーター、開始位置、0(削除するアイテムの数)、挿入するアイテム。splice(2,0、 "green"、 "red");文字列 "green"、 "red"を現在の配列の位置2から挿入します
    置換:指定された位置に任意の数のアイテムを挿入し、任意の数のアイテムを削除します、3つのパラメーター:開始位置、削除する項目の数、および挿入する項目の数。挿入されたアイテムの数は、削除されたアイテムの数と同じである必要はありません。splice(2,1、 "red"、 "green");現在の配列の位置2のアイテムを削除し、位置2から挿入します。splice()は、元の配列から削除された項目を返します(削除された項目はなく、空の配列を返します)

ロケーション方式

indexOf()先頭から後方検索するアイテム、および(オプションで)検索の開始点を示すインデックス。
lastIndexOf()末尾から先頭まで検索されたアイテム、および(オプションで)検索の開始点のインデックス。
var numbers = [1,2,3,4,5,4,3,2,1];
alert(number.indexOf(4)); // 3
alert(number.lastIndexOf(4)); // 5

反復法

各メソッドには実行する関数があり、この関数は3つのパラメーター(配列項目の値、配列内の項目の位置、配列オブジェクト自体)を受け取ります。

  1. every()は、配列内の各アイテムに対して指定された関数を実行し、関数が各アイテムに対してtrueを返す場合はtrueを返します

  2. filter()は、配列内の各アイテムに対して指定された関数を実行し、関数がtrueを返すアイテムの配列を返します

  3. foreach()は、配列内の各項目に対して指定された関数を実行します。戻り値はありません

  4. map()は、配列内の各項目に対して指定された関数を実行し、各関数呼び出しの結果の配列を返します

  5. some()は、配列内の各アイテムに対して指定された関数を実行し、関数がいずれかのアイテムに対してtrueを返す場合、trueを返します

     var numbers = [1,2,3,4,5,4,3,2,1];
     var everyResult = numbers.every(function(item,index,array){
     		return (item > 2);
     	})
     alert(everyResult);//false
    
  6. map()は配列を返します。この配列の各項目は、元の配列の対応する項目で渡された関数を実行した結果です。例:配列の各項目に2を掛けて、製品の配列を返します

     var numbers = [1,2,3,4,5,4,3,2,1];
     var everyResult = numbers.map(function(item,index,array){
     		return (item * 2);
     	})
     alert(everyResult);//[2,4,6,8,10,8,6,4]
     1,2,3,4,5都不会修改数组中包含值
    

マージ方法

2つのメソッドreduce()およびreduceRight()は、配列内のすべての項目を反復処理し、最終的な戻り値を作成します。reduce()は配列の最初の項目から始まり、1つずつ最後までトラバースします。reduceRight()はその逆です。どちらのメソッドも2つのパラメーターを受け取ります。各項目で呼び出される関数と、(オプションで)マージの基礎となる初期値です。
4つのパラメーター:以前の値、現在の値、アイテムインデックス、配列オブジェクト。この関数によって返された値はすべて、最初のパラメーターとして次のアイテムに自動的に渡されます。
配列内のすべての値を合計する操作を実行するには、reduce()メソッドを使用します。

var values = [1,2,3,4,5];
var sum = values.reduce(function(pre,cur,index,array){
			return pre + cur;
})
alert(sum);//15
第一次执行回调函数,prev是1,cur是2,第二次,prev是3,(1+2=3),cur是3(数组的第三项),这个过程会持续到把数组中的每一项访问一遍,返回结果。
元の記事を公開17件 ・いい ね0 訪問数770

おすすめ

転載: blog.csdn.net/CandiceYu/article/details/89888723