JS—配列

Dec 06, 2016 am 11:20 AM

Array (配列オブジェクト)
配列はオブジェクトです。配列は、順序付けられた値のコレクションです。各値は要素 (任意のタイプ) と呼ばれ、各要素には配列内の位置があり、インデックス (0-232-2) と呼ばれる数値で表されます。
1. 配列を作成します
1. 配列リテラル (直接量) を使用します
var empty=[];//空の配列
var miss=[1.1,true,"a",[1,{x:1,y: 2}]];//要素の型が異なります
var count=[1,,2];//要素は 3 つあり、途中の省略された値は未定義です
var undefs=[,,];//要素は 2 つありますが、これも 3 つに解析されるため、これは行わないでください
2. コンストラクター Array() を呼び出します
var a=new Array();//パラメータなし、空の配列と同等
var a=new Array(10); //長さ 10 の配列を指定します
var a=new Array(10, 4, "hhhh"); // 配列要素を指定しますが、リテラルを使用することは適切ではありません。メソッドを直接使用する
2. 配列要素の読み取りと書き込み
var arr =[1,2,3,4,5];//配列の最初の要素 - 2
arr[5]=6 ;//最初の要素を動的に追加します (再定義する必要はありません) 5 つの要素 - 6
delete arr[0]; 最初の要素は削除されますが、配列の長さは 6 のままで、最初の要素は未定義です
3。スパース配列には、0 から始まる要素が含まれます。 不連続にインデックスが付けられた配列。一般に、length 属性の値は実際の要素数より大きくなります
var arr1=[unknown];
var arr2=new Array(1);//arr1 の var arr2=[,]; と同じです。 true を返します。インデックス 0
0 に要素があります。 arr2; // false を返します。インデックス 0 には要素がありません。 配列属性
length: arr1.length
5. 0;i6. 多次元配列
arr[][]

//多次元配列を作成します
var table=new Array(10);//テーブルには10 rows
for(var i=0;i< table.length;i++)
table[i]=new Array(10) //各行には 10 列があります
//配列を初期化します
for(var row=0) ;rowfor( varcol=0;coltable[row][col]=row*col
}
}
//複数を使用します。次元配列の計算
var product=table[5][7]; //結果は 35
Seven. Array メソッド




1.join()
配列内のすべての要素を文字列に変換し、それらを結合します。文字列を返す場合は、要素を区切るための区切り文字を指定できます。指定されていない場合は、デフォルトの「,」で区切られます。
var arr=[1,2,3];
arr.join();//”1,2,3”
arr.join(”_”);//”1_2_3”


2.reverse( )
配列内の要素の順序を反転し、反転した配列を返します。元の配列は変更されます
var arr=[1,2,3];//[3,2,1] ]




3.sort()
配列内の要素をソートし、ソートされた配列を返すと、元の配列が変更されます。要素が未定義の場合は、最後までソートされます
arr=["a","c","b"];//["a","b","c" "] このメソッドがパラメーターなしで呼び出された場合、要素はアルファベット順にソートされます

arr=[13,24,51,3];
arr.sort() ;//[13,24,3,51] Convert次に、文字列が比較され、各数値の最初の桁が小さい順に並べ替えられます

arr.sort(function(a,b){
return a-b;//順序に従って、[3,13] ,24,51]
})

arr.sort(function(a,b){
return b-a;//逆順, [51,24,13,3]
})



4.concat( )
配列をマージします。元の配列は変更されません

var arr=[1,2,3];
arr.concat(4,5);//[1,2,3,4,5]
arr。 concat([4,5],6) ;//[1,2,3,4,5,6] パラメータが配列の場合、配列はフラット化されます
arr.concat(4,[5,[6] ,7]]);//[1,2, 3,4,5,[6,7]] パラメーターが配列の場合、配列要素は依然として配列であり、配列は 2 回フラット化されません




5.slice()
指定された配列のフラグメントまたはサブ配列を返します。その 2 つのパラメーターはそれぞれセグメントの開始位置と終了位置を指定します。通常は、左が閉じた間隔、右が開いた間隔になります。変更されました

var arr=[1,2,3,4,5];
arr.slice(1, 3);//[2,3]
arr.slice(1);//[2,3, 4,5] にはパラメータが 1 つだけあり、このパラメータは開始位置とみなされ、終了位置は配列
arr の末尾になります。//[2,3,4] 負の数。配列内の最後の要素に対する相対的な位置を表し、-1 は要素 5 を表します
arr.slice(-4,-3);//[ 2]




6.splice()
要素の挿入または削除配列では、元の配列が変更されます

var arr=[1,2,3,4,5]
arr.splice(2);/ /[3,4,5] は 2 番目の位置から要素を削除します。最後

arr.splice(2,2);//[3,4] 2 番目のパラメータは削除された要素の数を示します。つまり、2 番目の位置から始まる 2 つの要素を削除します

arr.splice(1, 1,"a","b"); //[2] 先頭から 1 要素を削除し、ここに "a" と "a" を挿入します "b"
arr;//[1, "a"," b",3,4,5]



7.push() と Pop()
配列をスタックとして使用して、元の配列が変更されます。
push() は配列の末尾に 1 つ以上の要素を追加し、配列の新しい長さを返します。
pop() は配列の最後の要素を削除し、配列の長さを減らし、削除された値

var を返します。 stack=[];
stack.push(1,2);//配列の長さ2を返す
stack.pop();//末尾の削除された要素2を返す



8.unshift() () 配列の先頭に
unshift() 1 つ以上の要素を追加し、配列の新しい長さを返します。
shift() は配列の最初の要素を削除し、削除された値を返します

var arr=[];
arr.unshift(2);//配列の長さ 1 を返します
arr.unshift(22);//配列の長さ 2 を返します、この時点では arr=[22,2]
arr.shift();//先頭を削除した要素 22 を返します




9.toString() および toLocaleString()
toString() は配列を "," で区切られた文字列に変換します
toLocaleString() は配列を文字列に変換しますローカリゼーション区切り文字を使用します

[1,[2,"c"] ].toString()//Return "1,2,c"





8. ECMAScript5 の配列メソッド
ECMAScript5 は 9 つの新しい配列メソッドを定義しますArray

1.forEach()
Array の走査、マップ、フィルター、検出、簡素化、検索を行うには、パラメーターは関数です。この関数は、要素、インデックス、配列自体の 3 つのパラメーターを使用して呼び出すことができます。

var arr=[1,2,3,4,5];
var sum=0;
arr.forEach(function(value){
sum+=value; // 配列を走査し、各値を合計します
});
sum;//15

arr.forEach(function(v,I,a){ //要素、インデックス、配列自体の 3 つのパラメータを使用してこの関数を呼び出します
a[i]=v+1 ;
})



追記: このメソッドは for のようにトラバーサルを早期に終了できないため、try ブロックに入れてください。 }catch(e){
if(e==foreach.break)return;
else throw e;
}
foreach,break=new Error(“StopIteration”); 2.map()
配列マッピング、元の配列は変更されていません

var arr=[1,2,3]
arr.map(function(x){
return x+10;
});/ /return [11 ,12,13]



3.filter()
配列のフィルタリング、元の配列は変更されず、返される配列は常に密です

var arr=[1,2,3,4,5 ,6,7 ,8,9,10];
arr.filter(function(x,index){
returnindex%3==0||x>=8;
});//[1,4, 7,8, 9,10]

4.every() と some()
配列の論理判断、true または false を返し、返されるべき値が確認されると、配列の走査を停止します
every () は論理「AND」に相当します。すべての要素が判定関数を呼び出して true を返す場合にのみ true を返します。
some() は論理「OR」に相当します。少なくとも 1 つの要素が判定関数を呼び出して true を返す場合、 return true

var arr=[1,2,3,4 ,5];
arr.every(function(x){
return x});//true
arr.every(function(x) ){
return x});//false

var arr=[1,2,3,4,5];
arr.some(function(x){
return x==3;
});//true
arr.every(function(x) {
return x==10;
});//false

追記: 空の配列で呼び出された場合。 Every() は true を返し、some() は false を返します

5.reduce() と reduceRight()
指定された関数を使用して配列要素を結合し、単一の値を生成します。元の配列は変更されません
reduce() には 2 つの値があります1 つ目はリダクション操作を実行する関数です。2 つ目は関数に渡される初期値です。reducedRight() のリダクション操作は右から左へ行われます。残りは、reduce() と同じです。 var arr=[1 ,2,3];
var sum=arr.reduce(function(x,y){
return x+y;
},0);//つまり、左から右に 6 を返します。 0+1=1,1 +2=3, 3+3=6

var sum=arr.reduceRight(function(x,y){
return x+y;
});// 6 を返します、つまり、3+2= 右から左へ 5,5+1=6
6.indexOf() および lastIndexOf()
配列の取得、最初に見つかった要素のインデックスを返し、見つからない場合は -1 を返します
indexOf() の検索最初から最後まで
lastIndexOf() から開始します 前後方向に検索します

var arr=[1,2,3,2,1];
arr.indexOf(2);//要素 2 のインデックスを検索し、1 を返します
arr.indexOf(4);//要素 4 のインデックスは存在しないため、-1 を返します
arr.indexOf(1,1);//最初の位置から開始して要素 1 のインデックスを検索します、4を返します
arr.indexOf(1,-3);//要素 1 のインデックスを検索、下から 3 番目から開始、4 を返す
arr.lastIndexOf(2,-2);//要素 2 のインデックスを検索、開始下から3番目から 2桁で検索を開始し、後ろから前に検索し、3を返します


9。 配列型
Array.isArray([]);//true
Array.isArray({}); //false

[]instanceof Array;//true
({})instanceof Array;//false

({}).toString.apply([])===”[オブジェクト配列]”;//本当です

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

javascriptの分解:それが何をするのか、なぜそれが重要なのか javascriptの分解:それが何をするのか、なぜそれが重要なのか Apr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? Apr 04, 2025 pm 05:09 PM

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は?
または:
Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は? または: Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Apr 04, 2025 pm 05:36 PM

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptは学ぶのが難しいですか? JavaScriptは学ぶのが難しいですか? Apr 03, 2025 am 12:20 AM

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

フロントエンド開発でVSCodeと同様に、パネルドラッグアンドドロップ調整機能を実装する方法は? フロントエンド開発でVSCodeと同様に、パネルドラッグアンドドロップ調整機能を実装する方法は? Apr 04, 2025 pm 02:06 PM

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...

Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Apr 04, 2025 pm 05:12 PM

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

See all articles