JavaScript:配列学習
6696 ワード
作成
主に構造関数と字面量の2つの方法に分けられます.配列の本質はオブジェクトです.
構造関数 を作成します. を作成する. です.
文字の量 を起動するのと同じです. .
指定された個数が足りません.各要素は初期値を指定する構成方法です.たとえば、配列を作成し、全部で
アクセスは主にインデックスを通じて にアクセスします.長さ である.長さ length=0クリア配列は、クリア配列を提供する方法がないので、これを使って を実現します.は、 インデックスも配列の属性であり、 インデックスが に戻ります.の最も一般的な方法は です. を動作させる. を返す. 削除 切り取り元の配列は変更されません. 元の配列は変更されません. を返します. を並べます. 配列は通常のオブジェクトであり、特別なセットタイプではない. は空のデータを提供する方法がなくて、 配列操作の方法が提供されていますか?それとも完全ですか?使いやすいです.適当な時に適当な方法を採用します. 配列の定義は、やはり一番簡単な
参考文献
配列の対象(Aray object)Mozzziaの教程、よく書けています.暇があれば、たくさん見てください.
javascriptの配列はこれを操作して簡潔に書いてありますので、多く見てみてください.
JavaScript配列はこれを詳しく書いていますので、多く見てください.
RUNOO B.COMは
JavaScript Arayオブジェクトはとても簡明な
主に構造関数と字面量の2つの方法に分けられます.配列の本質はオブジェクトです.
構造関数
var a1=new Array();
はパラメータがなく、空き行列var a2=new Array(5);
の1つのデジタルパラメータは、配列長を指定し(配列長は動的に調整できるので、役割は大きくない)、指定された長さの配列var a3=new Array(4,'hello',new Date());
には初期化データがあり、配列を作成し、パラメータデータを初期化する.このタイプが一致しない場合、配列タイプはobject 文字の量
var a4=[];
は、大かっこを使用して、空配列を作成し、無参画関数var a5=[10];
は、中かっこを使用し、初期化データを有するコンストラクタの呼び出しと同じデータを着信する.この場合、要素の配列を作成します.この要素の値は10です.字面量は、1つまたは複数のパラメータに関係なく、初期化値という意味だけです.var arr = [element0, element1, ..., elementN];
は、字面量方式を推奨する指定された個数が足りません.各要素は初期値を指定する構成方法です.たとえば、配列を作成し、全部で
n
個の要素が、各要素はfalse
に初期化される.これは2つのステップを必要とし、最初に空の配列を作成し、次にfor
サイクルを行い、各要素の割当値はfalse
である.アクセス
length
は、最後の要素のインデックス値+1 length
は修正されてもいいですが、配列容量が変更されたり、データがなくなったりすることがありますので、おすすめできません.通常は、読み取り専用の属性として使ったほうがいいです.[]
で与えられたのが正数ではなく、負の値、または文字であれば、配列に属性を追加します.[]
はインデックスを置くことができ、他の属性を置くこともできます.length
を超えると、undefined
var arr = ["one", "two", "three"];
arr[2]; // three
arr["length"]; // 3
arr[6]; // undefined
巡回するfor
サイクルであり、巡回するだけで、何の変換もしないvar colors = ['red', 'green', 'blue'];
for (var i = 0; i < colors.length; i++) {
console.log(colors[i]);
}
for in
は、プロトタイプチェーン上のすべての属性をエニュメレート・チェーンで循環するので、これらの属性をフィルタリングする唯一の方法はhasOwnProperty
関数を使用するので、通常のforサイクルよりも数倍遅くなります.for in
を使用して、配列を巡回することは、好ましくないコード習慣と考えられ、エラーを発生し、性能問題を引き起こす傾向がある.forEach()
方法は、配列を巡回して変換し、新しい配列に戻らず、直接に元の配列でvar a = ['a', 'b', 'c'];
a.forEach(function(element) { console.log(element);} );
// logs each item in turn
map()
方法は、配列を巡回して変換し、元の配列を変更せず、変換後の結果を新しい配列に入れてvar a1 = ['a', 'b', 'c'];
var a2 = a1.map(function(item) { return item.toUpperCase(); });
console.log(+a1); // logs a,b,c
console.log(+a2); // logs A,B,C
追加arrayObj. push([item1 [item2 [. . . [itemN ]]]]);
/1以上の新しい要素を配列の最後に追加し、配列の新しい長さを返します.後をつけて、最も常用します.複数の要素をカンマ,
で区切るarrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);
/1以上の新しい要素を配列の開始に追加し、配列内の要素は自動的に後に移動し、配列の新しい長さを返します.前をプラスして、時には使うことができます.複数の要素をカンマ,
で区切るarrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);
/1以上の新しい要素を配列の指定位置に挿入し、挿入位置の要素は自動的に後に移動し、「」を返します.中間を追加すると、他の言語の挿入関数に相当します.複数の要素はカンマ,
で区切られている.2番目のパラメータは0です.0つの要素を削除し、挿入機能だけが残ります.arrayObj.pop();
/最後の要素を除去し、要素値を返します.後を削除して、最も常用します;一つの要素しかないarrayObj.shift();
/最初の要素を除去し、要素値を返します.配列中の要素は自動的に前に移動します.前を削除して、時には使うことができます.一つの要素しかないarrayObj.splice(deletePos,deleteCount);
/指定位置deletePo
sから指定された数deleteCount
の要素を削除し、削除された要素を配列形式で返す.中間を削除して、時には使うことができます.複数の要素があります.後のオプションの追加要素はなく、削除機能のみが残ります.Array
arrayObj.slice(start, [end]);
//配列の形で配列の一部を返し、endに対応する要素を含まないことに注意し、endを省略するとstartの後のすべての要素が複製される.splice
は元の配列を直接修正します.この違いは大きいです.var a = new Array ("a", "b", "c", "d", "e");
var b = a(1, 4);
var c = a(1);
console.log(a) // ["a", "b", "c", "d", "e"]
console.log(b) // ["b", "c", "d"]
console.log(c) // ["b", "c", "d", "e"]
統合arrayObj.concat([item1[, item2[, . . . [,itemN]]]]);
/複数の配列(文字列でも良いし、配列と文字列の混合)を1つの配列に接続し、接続された新しい配列を返します.splice
は元の配列を直接修正します.この違いは大きいです.var a = new Array("1", "2", "3");
var b = new Array("a", "b", "c");
var c = a.concat(b);
console.log(a); // ["1", "2", "3"]
console.log(b); // ["a", "b", "c"]
console.log(c); // ["1", "2", "3", "a", "b", "c"]
並べ替えarrayObj.reverse();
/反転要素(一番前の列は最後、最後の列は一番前に)は、配列アドレスarrayObj.sort();
/配列要素の並べ替えに対して、配列アドレスに戻り、小さいときから大きいときまで、昇順にsort()
は、配列要素をどのように比較するかを決定するためのコールバック関数を持ってもよい.このコールバック関数は、2つの値を比較し、3つの値のうちの1つを返します.1、−1、0の3つの分岐は全部書きます.図を見ないでください.そうしないと、思いがけない論理的な問題が発生しやすくなります.例えば、次のコードは文字列の最後の文字で並べ替えられます.var myArray = new Array("Wind", "Rain", "Fire");
var sortFn = function(a, b){
if (a[a.length - 1] < b[b.length - 1]) return -1;
if (a[a.length - 1] > b[b.length - 1]) return 1;
if (a[a.length - 1] == b[b.length - 1]) return 0;
}
myArray.sort(sortFn);
// sorts the array so that myArray = ["Wind","Fire","Rain"]
文字列化arrayObj.join(separator);
/は文字列を返し、この文字列は配列の各要素値を結合し、中間はseparator
で区切られる.toLocaleString 、toString 、valueOf:
は、一般的ではないjoin
の特殊な使い方と見なされてもよい.返した文字列は新しく作成されました.元の配列は変更されません.var myArray = new Array("Wind", "Rain", "Fire");
var list = myArray.join(" - "); // list is "Wind - Rain - Fire"
console.log(myArray); // ["Wind", "Rain", "Fire"]
console.log(list); // Wind - Rain - Fire
結び目c
言語の連続メモリと本質的な違いがあります.length, index
などは属性です.アクセスできます.配列が境界を越えることに注意しなくてもいいです.存在しない属性にアクセスし、undefined
を返してもいいです.存在しないindex
を設定して、属性を追加すればいいです.length, index
の両者の関係は対象内部のメンテナンスがある.length = 0;
を使って間接的に目的を達成します.これはちょっと特殊で、個人の感覚もあまり良くないです.暇つぶしの方法を提供するのは難しくないはずです.splice
この方法は特殊で、削除したり、挿入したりして、目標配列自体を変えます.機能が充実していて、各種パラメータの場合は表現が違っていますので、注意して使用してください.[]
を使っています.参考文献
配列の対象(Aray object)Mozzziaの教程、よく書けています.暇があれば、たくさん見てください.
javascriptの配列はこれを操作して簡潔に書いてありますので、多く見てみてください.
JavaScript配列はこれを詳しく書いていますので、多く見てください.
RUNOO B.COMは
JavaScript
などの技術を勉強するウェブサイトです.レイアウトもいいです.JavaScript Arayオブジェクトはとても簡明な
W3C
マニュアルです.たまに調べてみます.