JSデータ型 - アレイ

アレイの紹介

Javaスクリプト言語(以下のJsと称する)において、我々は一般に参照データ型として使用される基本的なデータ・タイプ(単純な)データ型と参照(複合)データ型に分け - アレイ、我々は、アレイを見てみます基礎の一部。

配列の基礎

アレイ(配列)は、それが最も一般的なコンピュータ言語データ構造であるが、JS、最も一般的なデータ構造の一つのアレイの重要性は自明です。配列は、データの順序付きコレクションです。Jsのでは、アレイの各値は、配列の要素になり、アレイ内のJsの特性は、アレイ内の同じ要素である任意のタイプ(Jsのが弱く型付けされた言語)であることが、通常我々は、同じアレイ内の同じデータ型の値のみを保存することができ;配列内の要素の数は、各配列要素は、番号によってアクセスすることができるものであり、長さ0の配列が空の配列と呼ばれ、配列(長さ)の長さと呼ばれ、それはインデックス(またはインデックス)と呼ばれます配列インデックスは、配列の最後の要素のインデックスは、配列の長さであるべきで、0から始まります。

アレイの作成

2つの方法の配列を作成するために、配列コンストラクターを作成し、使用するプレーンの量に分割することができるアレイ状を作成します。
1、リテラルの作成:

let arr=[];

2、コンストラクタの引数:

let arr=new Array();

配列の割り当て

配列への代入方法は非常に簡単で、直接割り当てに分けることができたときに最初に再代入文と文:
代入することにより最初の文:

let arr = [];
arr[0] = 1;
Arr [1] = 2;

場合は、直接代入文:

let arr = -[3 ,4];
let arr1 = new Array(3,4);

無駄がないため、我々は、アレイに割り当てどこでも、アクチュエータの長さは、自動的にすべての未定義とみなすことができる、グループ、空の位置を変化させることができます。

アクセス配列要素(チェック)

配列インデックス(添え字)によって、我々は、配列に格納された要素の内部に容易にアクセスすることができ、次のように

let arr = [1,2,3,4,5];
console.log(arr[0]): //1

再び:インデックス内部からの配列の最初の要素は、ゼロベースです。

要素(削除)を削除します

私たちは、例えば、配列内の特定の要素を削除するには、delete演算子を使用することができます。

let arr = [1,2,3,4,5];
delete arr[2]//删除数组中的第3个元素
console.log(arr);//[ 1, 2, <1 empty item>, 4, 5 ]

もちろん、私たちは、この方法は非常に稀であると言うことができ、フォローアップは、削除配列要素にスプライスを聴いについて話します。

配列の長さ

配列の長さ、のJsのすなわち数がアレイに保存されたデータ長属性配列、または配列の長さを設定するためのリターンを提供します。
構文:配列名.LENGTH
例:

let arr = [1,2,3,4,5];
console.log(arr.length);//输出数组的长度5

私たちは、強制的に設定することで、配列の長さの配列要素の要素のか、背後にあるすべてを削除することができます
。例:

let arr = [1,2,3,4,5];
arr.length=2;
console.log(arr);//输出arr数组目前的所有元素[ 1, 2 ];
arr.length=0;
console.log(arr);//删除后arr的内容清空,变为空数组

反復

配列の役割は、データの複数のバッチを保存することができますが、私たちはデータを操作する必要がある場合、直接効果を達成するために、配列を操作することはできません、まだ配列からの各データの取り出しする必要があり、その後、順番にそれらを取ります操作。我々は、アレイトラバーサルが以下使用:
1、ループによってforループ素子のアレイを介して各
実施例を、

let arr = [1,2,3,4,5];
for(let i = 0;i<arr.length;i++){
    console.log(arr[i]);
}

:2、およびFOR-における循環ループのための使用の
ES6する比較/またはより簡潔のために巡回符号から、アレイ介して1種類の-の方法を追加しました。
ケース、

let arr = [1,2,3,4,5];
for(let i of arr){//i就代表数组的一项
    console.log(i);
}

さらに、我々はまた、配列をループで用-で取得するには、配列の各要素を横断するために基本的な方法を活用することができます:
例を、

let arr = [1,2,3,4,5];
for(let i in arr){//i代表数组的下标(索引)
    console.log(arr[i]);
}

一般的な方法の配列

アレイは、アレイを操作するための多くの方法を含んでいます。これは、紹介、より一般的な方法のいくつか:
1、削除データ、削除、および非常に最初から最後削除されていないに:
最初から削除するには:

let arr = [1,2,3,4,5];
arr.shift();
console.log(arr);//输出arr数组目前删除元素后的数组[ 2, 3, 4, 5 ]

後ろから削除します。

let arr = [1,2,3,4,5];
arr.pop();
console.log(arr);//输出arr数组目前删除元素后的数组[ 1, 2, 3, 4 ]

:非常に増加していない最後増加し始めてから分割2、増加データ、
年末から上昇

let arr = [1,2,3,4,5];
arr.push(6);
console.log(arr);//输出arr数组目前增加元素后的数组[ 1, 2, 3, 4, 5, 6 ]

から増加

let arr = [1,2,3,4,5];
arr.unshift(6);
console.log(arr);//输出arr数组目前增加元素后的数组[ 6, 1, 2, 3, 4, 5 ]

JSは、追加または削除するデータアレイの任意の位置のための普遍的な方法を提供し、次の構文構造:
配列名.splice(添字は、番号を削除し、新たなアクチュエータ、新しいデータ2に記載)
注あなただけの、追加番号0を書き込むことができます削除する必要があるデータを削除しない場合は、新しいデータは、ゼロを含む任意の数とすることができます。

let arr = [1,2,3,4,5];
arr.splice(1,1);//下标为1的位置删除一个数并且不添加元素
console.log(arr);//输出arr数组目前删除元素后的数组[ 1, 3, 4, 5 ]

データを探します

インデックスデータ、一般的な方法を見出す:
のindexOfアクチュエータは、添え字の最初の発生を見つけるために記載;
lastlndex0f():下付き文字データの最後の発生を見つける:
対応する値が返される対応するインデックスを付与する配列で見つかった場合、データは、リターンを変更するため-1配列に存在しない場合、直ちに、検索を停止し、

let arr = [1,2,3,4,5];
console.log(arr.indexOf(2));//输出元素在数组中的下标 1
console.log(arr.lastIndexOf(2));//输出元素在最后一次出现在数组中的下标 1
console.log(arr.indexOf(20));//元素不存在,返回 -1

かどうかが決定するために、真または偽の値を返すことによって、既存のデータは(含まれているかどうかを見つけるための別の方法):
例、

let arr = [1,2,3,4,5];
console.log(arr.includes(20));//false 不存在
console.log(arr.includes(1));//true 存在

注:NaNはあなたがNaNを使用する必要がある場合はその方法を含み、方法はのindexOfおよびlastIndexOfでも配列を使用してクエリを存在しない、独自のを含め、任意の数と等しくありませんので。
いくつかのデータがあるかどうかを検索:
Jsとは、データ配列、データの一部を見つけて、新しい配列の構図を見つけるために使用されるスライス方法を提供します。
.Sliceアレイ名(添字開始位置、終了位置指標)、終了位置まで開始位置からスライスの間のすべてのデータを検索するために使用されている(含まれていません)。

let arr = [1,2,3,4,5];
console.log(arr.slice(2,4));//查找数组中下标为2到下标为4(不包括)之间的数据并返回 得到新数组 [ 3, 4 ]

データのソート

JSはメソッドのセット、アレイのための動作のシーケンス内のすべてのデータを提供します。
リバース:逆の順序ですべてのデータ(逆順考慮しない反転出力);

let arr = [6, 2, 8, 1, 5];
console.log(arr.reverse());//点到顺序并返回新数组 [ 5, 1, 8, 2, 6 ]

並べ替え:与えられた条件に従い、すべてのデータをソートし、
例を

let arr = [6, 2, 8, 1, 5];
console.log(arr.sort((a, b) => a - b)); //升序排序并返回新数组 [ 1, 2, 5, 6, 8 ]
console.log(arr.sort((a, b) => b - a)); //降序排序并返回新数组 [ 8, 6, 5, 2, 1 ]

配列と文字列の変換

JSは、ユーザと文字列の変換(「」)とジョイン(「」)の間で分割する方法が提供されます。
スプリット(「」)メソッドは、文字列配列、セパレータをカスタマイズすることができる充填セパレータ、ブラケットを変換するために使用される。

let str = "1,5,8,1,3";
let arr = str.split(",");
console.log(arr);//得到转换成功后的数组 [ '1', '5', '8', '1', '3' ]

参加(「」)メソッドの

let str = "1,5,8,1,3";
let arr = str.split(",");
console.log(arr);//得到转换成功后的数组 [ '1', '5', '8', '1', '3' ]
console.log(arr.join(""));//得到转换成功后的字符串 "15813"

[拡張]配列トラバーサルの他の方法

;以前に-FORおよびFOR-のループにループ配列を介して、我々は、反復をJSしかし、他の方法があるが、我々はまた、非常に人気があり、について述べたことに加えて
、forEachの()メソッドは
、ケース

let arr = [6, 2, 8, 1, 5];
arr.forEach((value)=>{
    console.log(value);//遍历得到爱arr的每一项
});

これは、foreachループ配列、より高い周波数の使用が来るが、パフォーマンスはのための通常のサイクルよりも、実際に弱いです。
forEachのは、あなたが外側の関数に戻るには、returnステートメントを使用することはできません、悪循環を断ち切る続けるとbreak文は使用しません。
()メソッドをマッピング:各アレイをさせるために、順次同じ動作の一部を実行して、新しい配列を返します。
ケース、

let arr = [6, 2, 8, 1, 5];
arr.forEach((value)=>{
    console.log(value);//遍历得到爱arr的每一项
});

要約:のforeach差()とマップ()、前者は新しいアレイが動作復帰されるまでの戻り値、ではありません。
加えて、すべての配列()、いくつかの()とフィルタ()、我々は、より一般的に使用される方法がある:
1は、すべての()メソッドは、配列内の各アイテムは、全体満たしている場合限り、少なくとも一つで真、戻り条件を満たすようにするかどうかを決定します満足していないリターン偽:
例、

let arr = [6, 2, 8, 1, 5];
let re = arr.every((value)=>{
   return value >= 1;
});
console.log(re);//由于数组每一项都大于或等于1,因此返回true
let re1 = arr.every((value)=>{
    return value >= 2;
 });
 console.log(re1);//由于数组不满足每一都大于2,因此返回false

いくつかの()メソッドは、アレイは、少なくとも一つの条件のいずれかが直ちに成立trueを返し、すべてが満たされていない場合が見つかった場合、その満たす終端機能は、それがfalseを戻したか否かを判断する。

let arr = [6, 2, 8, 1, 5];
let re = arr.some((value)=>{
   return value >= 3;
});
console.log(re);//数组中存在大于3的数据,因此返回true
let re1 = arr.every((value)=>{
    return value >= 10;
 });
 console.log(re1);//数组中不存在大于10的数,因此返回false

フィルタ()は、別々にそれぞれ、戻り値を満たす条件の条件は、私たちはスクリーニングフィルタデータを行うために使用されるか否かが判定されます。
ケース、

let arr = [6, 2, 8, 1, 5];
let re = arr.filter((value)=>{
   return value >= 3;
});
console.log(re);//筛选出满足条件的值并返回 [ 6, 8, 5 ]

概要:配列は、任意のタイプのデータを格納することができますので、Jsのは、弱い型付けされた言語で、もちろん、私たちが毎日使用するデータのより多くの同じ型で、配列内のJs位置は、まだ学習私たちのすべての将来に極めて重要なように記述することができます重くて長い道のり。

公開された19元の記事 ウォンの賞賛0 ビュー298

おすすめ

転載: blog.csdn.net/Joey_Tribiani/article/details/103301682