JSチュートリアル

JSホーム JSの紹介 JSどこへ JS出力 JSステートメント JS構文 JSコメント JS変数 JS Let JSConst JSオペレーター JS算術 JS割り当て JSデータ型 JS関数 JSオブジェクト JSイベント JS文字列 JS文字列メソッド JS文字列検索 JS文字列テンプレート JS番号 JS番号メソッド JSアレイ JS配列メソッド JS配列ソート JSアレイの反復 JSアレイ定数 JSの日付 JSの日付形式 JS DateGetメソッド JS日付設定メソッド JS数学 JSランダム JSブール値 JSの比較 JS条件 JSスイッチ JSループFor JSループフォーイン JSループの JSループWhile JSブレイク JSIterables JSセット JSマップ JS Typeof JS型変換 JSビット単位 JS RegExp JSエラー JSスコープ JSホイスト JS厳密モード JSこのキーワード JSアロー関数 JSクラス JS JSON JSデバッグ JSスタイルガイド JSのベストプラクティス JSの間違い JSパフォーマンス JS予約語

JSバージョン

JSバージョン JS 2009(ES5) JS 2015(ES6) JS 2016 JS 2017 JS 2018 JS IE /エッジ JSの歴史

JSオブジェクト

オブジェクト定義 オブジェクトのプロパティ オブジェクトメソッド オブジェクト表示 オブジェクトアクセサー オブジェクトコンストラクター オブジェクトのプロトタイプ オブジェクト反復可能 オブジェクトセット オブジェクトマップ オブジェクトリファレンス

JS関数

関数の定義 関数パラメーター 関数の呼び出し 関数呼び出し 機能適用 関数クロージャ

JSクラス

クラスイントロ クラス継承 クラス静的

JS非同期

JSコールバック JS非同期 JSの約束 JS Async / Await

JS HTML DOM

DOMイントロ DOMメソッド DOMドキュメント DOM要素 DOM HTML DOMフォーム DOM CSS DOMアニメーション DOMイベント DOMイベントリスナー DOMナビゲーション DOMノード DOMコレクション DOMノードリスト

JSブラウザBOM

JSウィンドウ JS画面 JSロケーション JSの歴史 JSナビゲーター JSポップアップアラート JSタイミング JSクッキー

JS Web API

WebAPIイントロ WebフォームAPI Web履歴API WebストレージAPI WebワーカーAPI Web Fetch API Web Geolocation API

JS AJAX

AJAXイントロ AJAX XMLHttp AJAXリクエスト AJAX応答 AJAXXMLファイル AJAX PHP AJAX ASP AJAXデータベース AJAXアプリケーション AJAXの例

JS JSON

JSONイントロ JSON構文 JSONとXML JSONデータ型 JSON解析 JSON文字列化 JSONオブジェクト JSON配列 JSONサーバー JSON PHP JSON HTML JSON JSONP

JSとjQuery

jQueryセレクター jQuery HTML jQuery CSS jQuery DOM

JSグラフィックス

JSグラフィックス JSキャンバス JSPlotly JS Chart.js JSグーグルチャート JS D3.js

JSの例

JSの例 JS HTML DOM JSHTML入力 JSHTMLオブジェクト JSHTMLイベント JSブラウザ JSエディター JS演習 JSクイズ JS証明書

JSリファレンス

JavaScriptオブジェクト HTMLDOMオブジェクト


JavaScript配列

配列は特別な変数であり、複数の値を保持できます。

const cars = ["Saab", "Volvo", "BMW"];

なぜ配列を使用するのですか?

アイテムのリスト(たとえば、車の名前のリスト)がある場合、単一の変数に車を格納すると、次のようになります。

let car1 = "Saab";
let car2 = "Volvo";
let car3 = "BMW";

ただし、車をループして特定の車を見つけたい場合はどうでしょうか。そして、もしあなたが3台の車ではなく、300台の車を持っていたらどうでしょうか?

解決策は配列です!

配列は1つの名前で多くの値を保持でき、インデックス番号を参照することで値にアクセスできます。


配列の作成

配列リテラルを使用するのが、JavaScript配列を作成する最も簡単な方法です。

構文:

const array_name = [item1, item2, ...];      

constキーワードを使用して配列を宣言するのが一般的な方法です。

配列を使用したconstの詳細については、「 JS ArrayConst」の章を参照してください

const cars = ["Saab", "Volvo", "BMW"];

スペースと改行は重要ではありません。宣言は複数行にまたがることができます。

const cars = [
  "Saab",
  "Volvo",
  "BMW"
];

配列を作成してから、要素を指定することもできます。

const cars = [];
cars[0]= "Saab";
cars[1]= "Volvo";
cars[2]= "BMW";

JavaScriptキーワードの使用new

次の例も配列を作成し、それに値を割り当てます。

const cars = new Array("Saab", "Volvo", "BMW");

上記の2つの例はまったく同じです。

を使用する必要はありませんnew Array()

単純さ、読みやすさ、実行速度のために、配列リテラルメソッドを使用してください。



配列要素へのアクセス

インデックス番号を参照して配列要素にアクセスします

const cars = ["Saab", "Volvo", "BMW"];
let car = cars[0];

注:配列インデックスは0から始まります。

[0]は最初の要素です。[1]は2番目の要素です。


配列要素の変更

このステートメントは、:の最初の要素の値を変更しますcars

cars[0] = "Opel";

const cars = ["Saab", "Volvo", "BMW"];
cars[0] = "Opel";

フルアレイにアクセスする

JavaScriptを使用すると、配列名を参照して完全な配列にアクセスできます。

const cars = ["Saab", "Volvo", "BMW"];
document.getElementById("demo").innerHTML = cars;

配列はオブジェクトです

配列は特殊なタイプのオブジェクトです。JavaScriptのtypeof演算子は、配列の「オブジェクト」を返します。

ただし、JavaScript配列は配列として最もよく説明されます。

配列は、数値を使用してその「要素」にアクセスします。この例では、 person[0] Johnを返します。

配列:

const person = ["John", "Doe", 46];

オブジェクトは名前を使用してその「メンバー」にアクセスします。この例で は、 person.firstName Johnを返します。

物体:

const person = {firstName:"John", lastName:"Doe", age:46};

配列要素はオブジェクトにすることができます

JavaScript変数はオブジェクトにすることができます。配列は特殊な種類のオブジェクトです。

このため、同じ配列に異なるタイプの変数を含めることができます。

配列にオブジェクトを含めることができます。配列に関数を含めることができます。配列には次の配列を含めることができます。

myArray[0] = Date.now;
myArray[1] = myFunction;
myArray[2] = myCars;

配列のプロパティとメソッド

JavaScript配列の真の強みは、組み込みの配列プロパティとメソッドです。

cars.length   // Returns the number of elements
cars.sort()   // Sorts the array

配列メソッドについては、次の章で説明します。


長さプロパティ

配列のlengthプロパティは、配列の長さ(配列要素の数)を返します。

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let length = fruits.length;

プロパティは、length常に最高の配列インデックスより1つ多くなります。


最初の配列要素へのアクセス

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[0];

最後の配列要素へのアクセス

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[fruits.length - 1];

配列要素のループ

配列をループする1つの方法は、ループを使用することforです。

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fLen = fruits.length;

let text = "<ul>";
for (let i = 0; i < fLen; i++) {
  text += "<li>" + fruits[i] + "</li>";
}
text += "</ul>";

Array.forEach()次の関数を使用することもできます。

const fruits = ["Banana", "Orange", "Apple", "Mango"];

let text = "<ul>";
fruits.forEach(myFunction);
text += "</ul>";

function myFunction(value) {
  text += "<li>" + value + "</li>";
}

配列要素の追加

配列に新しい要素を追加する最も簡単な方法は、次のpush()方法を使用することです。

const fruits = ["Banana", "Orange", "Apple"];
fruits.push("Lemon");  // Adds a new element (Lemon) to fruits

length次のプロパティを使用して、新しい要素を配列に追加することもできます。

const fruits = ["Banana", "Orange", "Apple"];
fruits[fruits.length] = "Lemon";  // Adds "Lemon" to fruits

警告 !

インデックスの高い要素を追加すると、配列に未定義の「穴」が作成される可能性があります。

const fruits = ["Banana", "Orange", "Apple"];
fruits[6] = "Lemon";  // Creates undefined "holes" in fruits

連想配列

多くのプログラミング言語は、名前付きインデックスを持つ配列をサポートしています。

名前付きインデックスを持つ配列は、連想配列(またはハッシュ)と呼ばれます。

JavaScriptは、名前付きインデックスを持つ配列をサポートしていません。

JavaScriptでは、配列は常に番号付きインデックスを使用します。  

const person = [];
person[0] = "John";
person[1] = "Doe";
person[2] = 46;
person.length;    // Will return 3
person[0];        // Will return "John"

警告 !!
名前付きインデックスを使用する場合、JavaScriptは配列をオブジェクトに再定義します。

その後、一部の配列メソッドとプロパティは誤った結果を生成します。

 例:

const person = [];
person["firstName"] = "John";
person["lastName"] = "Doe";
person["age"] = 46;
person.length;     // Will return 0
person[0];         // Will return undefined

配列とオブジェクトの違い

JavaScriptでは、配列番号付きインデックスを使用します。  

JavaScriptでは、オブジェクト名前付きインデックスを使用します。

配列は特殊な種類のオブジェクトであり、インデックスに番号が付けられています。


配列を使用する場合。オブジェクトを使用する場合。

  • JavaScriptは連想配列をサポートしていません。
  • 要素名を 文字列(テキスト)にする場合は、オブジェクトを使用する必要があります
  • 要素名を 数字にする場合は、配列を使用する必要があります

JavaScript new Array()

JavaScriptには配列コンストラクターが組み込まれていnew Array()ます。

ただし、代わりに安全に使用できます[]

これらの2つの異なるステートメントは両方とも、pointsという名前の新しい空の配列を作成します。

const points = new Array();
const points = [];

これらの2つの異なるステートメントは両方とも、6つの数値を含む新しい配列を作成します。

const points = new Array(40, 100, 1, 5, 25, 10);
const points = [40, 100, 1, 5, 25, 10];

キーワードはnew予期しない結果をもたらす可能性があります。

// Create an array with three elements:
const points = new Array(40, 100, 1);
// Create an array with two elements:
const points = new Array(40, 100);
// Create an array with one element ???
const points = new Array(40);  

一般的なエラー

const points = [40];

と同じではありません:

const points = new Array(40);
// Create an array with one element:
const points = [40];
// Create an array with 40 undefined elements:
const points = new Array(40);  

配列を認識する方法

よくある質問は次のとおりです。変数が配列であるかどうかを確認するにはどうすればよいですか。

The problem is that the JavaScript operator typeof returns "object":

const fruits = ["Banana", "Orange", "Apple"];
let type = typeof fruits;

The typeof operator returns object because a JavaScript array is an object.

Solution 1:

To solve this problem ECMAScript 5 (JavaScript 2009) defined a new method Array.isArray():

Array.isArray(fruits);

Solution 2:

The instanceof operator returns true if an object is created by a given constructor:

const fruits = ["Banana", "Orange", "Apple"];

fruits instanceof Array;

Complete Array Reference

For a complete Array reference, go to our:

Complete JavaScript Array Reference.

The reference contains descriptions and examples of all Array properties and methods.

Test Yourself With Exercises

Exercise:

Get the value "Volvo" from the cars array.

const cars = ["Saab", "Volvo", "BMW"];
let x = ;