2019年9月17日:
学習内容:配列
まず、(PYのリストに類似)の配列:
図1に示すように、アレイを作成します。
インデックスがunderfinedスーパー部門を返さ2、:
3、配列トラバーサル:
PS:また、横断するarrayObj.foreach()メソッドを使用します。(Internet Explorer 8の以前のバージョンでは)(Array.forEachをサポートしていません。)
テキスト= "<UL>"; arrayObj.forEach(MyFunctionを)。 テキスト+ = "</ UL>";
4、配列要素を追加します。
(1)arrayObj.push( "new_element")を
(2)arrayObj [arrayObj.length] = "new_element" //インデックス要素を添加剤に相当します。変更の要素が見つけ、添字によって値を変更することができます
(3)配列に新しい要素を追加する(配列の終わりに)プッシュ()メソッド
(4) (最初に)抜き()メソッド配列に新しい要素を追加し、古い要素を「変位を反転」します。新しい配列の長さを返します。
(5)スプライス()配列に要素を追加または削除するために使用することができます。
5、配列内の特定の要素を削除します。
(1)arr.splice(0,1)を削除することを意味最初の配列を、arr.splice(1,2)は、2つの要素の第2の長さの先頭から削除することを意味します。
(2)POP()メソッドは、配列の最後の要素を削除します
(3)シフト()メソッドは、配列の最初の要素を削除し、他のすべての要素より低い屈折率を「シフト」。
(4)[0]添字によって対応する要素を削除果物を削除
図6に示すように、合成二つの配列:CONCAT()
7.注:配列のインデックスは名前をサポートしていない、唯一の添字インデックスを使用することができます!!
あなたが名前のインデックスを使用している場合、JavaScriptはオブジェクトの標準配列を再定義します。その後、配列のすべてのメソッドとプロパティは、間違った結果が生成されます。
8、配列とオブジェクトとの間の差:
配列オブジェクト場合9.どのように知っていますか?
XXXのinstanceof配列解析を使用してください
10、配列(文字列)ソート:(最大値と最小値を見つけ、該当する方法は存在しない)ソートすることによってのみ来ることができます
(1)アルファベット配列をソートするソート()メソッド
(2)配列内の要素を反転させる()メソッドを逆。まずソート()、その後、あなたは降順で配列をソートするためにそれを使用することができます。
11、そしてデジタルの割合はどのようにそれをソートするには?
昇順順序:
VAR点= [40、100、1、5、25、10]。 points.sort(関数(B){返す- B})。
降順で:
VAR点= [40、100、1、5、25、10]。 points.sort(関数(B){戻りB - A})。
完全な栗:
12、最大値と最小値を見つけます。
あなたが唯一の最大値または最小値を見つける必要がある場合は、配列全体が一種の非常に非効率的な方法です。
最速の解決策は、「自家製」のアプローチを使用することです。アレイを介してこの関数反復は、見つかった最高値と各値を比較します
//查找最大值: 関数myArrayMax(ARR){ VARのLEN = arr.lengthの VAR最大= -Infinity。 一方、(len--){ IF(ARR [LEN]> MAX){ 最大=のARR [LEN]。 } } 最大を返します。 }
//查找最小值 関数myArrayMin(ARR){ lenをし= arr.lengthは 分=無限大でした。 一方、(len--){ IF(ARR [LEN] <分){ 私=のARR [LEN]。 } } 分を返します。 }
図13は、JSの配列はソート(数値属性の)オブジェクト、オブジェクトが含まれています。
cars.sort(関数(B){戻りa.year - b.year})。
14、Array.map()(すべてのブラウザがサポート のInternet Explorer 8またはそれ以前に加えArray.mapを())
によって各配列要素の実装のための新たな機能の配列を作成するためにマップ()メソッド。
地図()メソッドは、配列要素の値の関数を実行しません。
地図()メソッドは、元の配列を変更しません。
この例では、各アレイ値は2で乗算されます。
この関数は3つのパラメータを持っていることに注意してください。
- アイテム値
- プロジェクトインデックス
- 配列自体
場合にのみ、コールバックパラメータ値を省略してもよいし、アレイ・インデックス・パラメータ
//栗子1: VAR numbers1 = [45、4、9、16、25]。 VAR numbers2 = numbers1.map(MyFunctionを)。 関数MyFunctionを(値、インデックス、アレイ){ 戻り値* 2。 } //栗子2: VAR numbers1 = [45、4、9、16、25]。 VAR numbers2 = numbers1.map(MyFunctionを)。 関数MyFunctionを(値){ 戻り値* 2。 }
によってフィルタリングアレイを作成するために15、Array.filter()関数
コールバック関数は、それらを省略することができ、インデックスと配列パラメータを使用していません。
すべてのブラウザがサポート のInternet Explorer 8またはそれ以前のバージョンに加えてArray.filterを()、
//一个栗子: VAR番号= [45、4、9、16、25]。 VAR over18 = numbers.filter(MyFunctionを)。 関数MyFunctionを(値、インデックス、アレイ){ 戻り値> 18。 }
16、Array.reduce()関数によって、素子動作
低減()メソッドは、(減少する)単一の値を生成するために、各アレイ素子関数で実行されます。
アレイの左から右への作業の()メソッドを減らします。reduceRight()を参照してください。
低減()メソッドは、元の配列を低下させません。
初期値を受け入れることができます()メソッドを減らします:
この例では、アレイ内のすべての数字の合計を決定しました。
//结果是199: VAR numbers1 = [45、4、9、16、25]。 VaRの和= numbers1.reduce(MyFunctionを、100)。 関数MyFunctionを(合計値){ 合計+値を返します。 }
17、Array.every():すべての試験はブール値を返すかどうかを決定することにより素子による機能操作子、
//返回偽: VAR番号= [45、4、9、16、25]。 VAR allOver18 = numbers.every(MyFunctionを)。 関数MyFunctionを(値){ 戻り値> 18。 }
18、Array.some():要素によって機能作動要素は、テストエレメントが存在するか否かを判定することによって、ブール値を返します
<!DOCTYPE HTML> <HTML> <BODY> のJavaScript Array.some <のH1>()<の/ H1> <P>特定の配列の値は、試験に合格したかどうかをいくつかの()メソッドをチェックします。</ P> <P ID = "デモ"> </ P> <SCRIPT> VAR番号= 45 ,. 4 ,. 9、16、25]; VAR = someOver18 numbers.some(MyFunctionを) のdocument.getElementById(「デモ").innerHTML ="値の一部が18よりも大きい「+ someOver18、 関数MyFunctionを(値、インデックス、アレイ){ 戻り値> 18; } </ SCRIPT> </ BODY> </ HTML>
図19は、Array.findは()は、最初の配列要素によって得られた値を返しテストの関数であります
//返回25 VAR番号= 4、9、16、25、29]。 VAR最初= numbers.find(MyFunctionを)。 関数MyFunctionを(値){ 戻り値> 18。 }
Array.findIndex():インデックスの機能をテストすることによって、配列の最初の要素を返します