ES6 (4)


Arrays


ES 6は、アレイ動作を簡素化するために、グローバルArrayオブジェクトに新しいPropertyおよび多くのインスタンスを追加することをサポートする.他の言語と比較して,既存のjavascriptは配列を用いた操作の特徴や効率が低下しており,ES 6はこれを補完している.

Array.from(iterable, mapFunc, this)

Array.from()メソッドは、小さなオブジェクトから新しい配列を生成します.このかわいいオブジェクトの参照値を最初のパラメータで受け入れます.2番目の因子は、Map functionを受け入れるオプションである.これは、小さなオブジェクトのすべての要素に適用されます.3番目のパラメータもオプションであり、Map function関数のthisにバインドされる.次の例です.
let str = "0123";
let obj = {number: 1};
let arr = Array.from(str, function(value){
 return parseInt(value) + this.number;
}, obj);
console.log(arr);

// 1,2,3,4

Array.of(values...)

Array.of()の方法は、配列を生成するArrayの代わりに関数を構築することができる.既存のArrayコンストラクション関数を使用して配列を生成する場合、パラメータを使用して数値を入れると、数値を要素とする配列ではなく、数値の長さを持つ配列を生成する問題が解決されます.次の例です.
let arr1 = new Array(2);
let arr2 = new Array.of(2);
console.log(arr1[0], arr1.length);
console.log(arr2[0], arr2.length);

// Output
undefined 2
2 1
Array.of()メソッドは、主に新しい配列インスタンスを動的に作成する場合に使用され、コンストラクション関数に入る値のタイプまたは要素の数がわかりません.

Array.fill(value, startIndex, endIndex)

Array.fill()メソッドは、1番目のパラメータの値を受け入れ、2、3番目のパラメータは、パラメータとしてオプションの、開始および終了のインデックスを受け入れる.default路は0 ~ array.length - 1です.startIndexのインデックスをendIndexの要素に変換します.valueは含まれず、endIndexのインデックスに置き換えられる.次の例です.負の値が受け入れられる場合、endIndex-1として計算される.
let arr1 = [1, 2, 3, 4];
let arr2 = [1, 2, 3, 4];
let arr3 = [1, 2, 3, 4];
let arr4 = [1, 2, 3, 4];
let arr5 = [1, 2, 3, 4];

arr1.fill(5);
arr2.fill(5, 1, 2);
arr3.fill(5, 1, 3);
arr4.fill(5, -3, 2);
arr5.fill(5, 0, -2);

console.log(arr1);
console.log(arr2);
console.log(arr3);
console.log(arr4);
console.log(arr5);

// Output
5,5,5,5
1,5,3,4
1,5,5,4
1,5,3,4
5,5,3,4

Array.find(testingFunc, this)

배열 길이 + (negativeNumber)メソッドは、Array.find()条件を満たす配列要素を返す.気に入らない場合は、testingFuncに戻ります.
最初のパラメータのundefinedは、その名の通りテスト関数である.確認する操作を含む関数です.2番目のパラメータはtestingFunctestingFuncです.thisには3つのパラメータがあり、1つ目はtestingFuncで、現在のプロセスの配列の要素です.2番目のパラメータはvalueであり、indexのインデックス値である.3番目のパラメータはvalueであり、arrayの配列が呼び出される.find()は、testingFuncを返し、配列において試験条件を満たす最初の要素を返さなければならない.次の例です.
let x = 12;
let arr = [11, 12, 13];
let result = arr.find(function(value, index, array){
 if(value == this)
 {
 return true;
 }
}, x);
console.log(result); //Output "12"

Array.findIndex(testingFunc ,this)

true法はArray.findIndex()法と非常に類似している.find()の代わりにvalueを返却します.
let x = 12;
let arr = [11, 12, 13];
let result = arr.findIndex(function(value, index, array){
 if(value == this)
 {
 return true;
 }
}, x);
console.log(result); Output "1"

Array.copyWithin(targetIndex, startIndex, endIndex)

indexメソッドは、ターゲットインデックスの位置をArray.copyWithin()に再配置する.次の例です.
let arr1 = [1, 2, 3, 4, 5];
let arr2 = [1, 2, 3, 4, 5];
let arr3 = [1, 2, 3, 4, 5];
let arr4 = [1, 2, 3, 4, 5];

arr1.copyWithin(1, 2, 4);
arr2.copyWithin(0, 1);
arr3.copyWithin(1, -2);
arr4.copyWithin(1, -2, -1);

console.log(arr1);
console.log(arr2);
console.log(arr3);
console.log(arr4);

// Output
1,3,4,4,5
2,3,4,5,5
1,4,5,4,5
1,4,3,4,5

startIndex ~ endIndex-1

Array.entries(),keys(),values()メソッドは、配列されたArray.entries()を返します.index, valueメソッドは、Array.kes()indexを返し、配列された要素Array.values()を返します.返されるかわいいオブジェクトは配列ではありません.
let arr = ['a', 'b', 'c'];
let entries = arr.entries();
let keys = arr.keys();
let values = arr.values();
console.log(...entries);
console.log(...keys);
console.log(...values);

// Output
0,a 1,b 2,c
0 1 2
a b c

しゅうごう


集合とは,1つのセルとして複数の要素を格納する形式のオブジェクトである.ES 6は多くの新しい集合を提供し,データの格納と整理により良い方法を提供した.
ES 5では、配列は一意の集合データである.ES 6は、valuearray bufferstyped arraysSetなどの複数の組み込み集合オブジェクトをサポートする.ES 6でサポートされている新しいコレクションオブジェクトを表示します.

Array buffers


配列内の要素で、文字列、数値、オブジェクトなどを任意の形式で格納できます.配列は動的に増大します.そのため、アレイの動作速度やメモリ部分には多くの制限があります.これは、大量の演算と大量のデジタルに関するアプリケーションを開発する際によく発生する問題です.Mapはこのホットスポットの代替案として提案されている.Array buffersは、8ビットブロックメモリからなる集合である.各ブロックはArray bufferエリモントです.Array bufferの寸法は、アレイのように動的に増大しない生成中に決定する必要がある.Array bufferは数字しか記憶できず、Array bufferを生成する過程で、すべてのブロックが数字0に初期化される.Array bufferオブジェクトは、Array bufferコンストラクタによって生成される.
let buffer = new ArrayBuffer(80); //80 bytes size
ArrayBufferを読み込むか、Array bufferオブジェクトを使用して値を作成します.数字を表現するために強制的に使用されないのは8ビットだけです.8、16、32、64ビットで数字を表すことができます.次の例では、DataViewオブジェクトを作成し、DataViewオブジェクトの読み取りと書き込み方法について説明します.
let buffer = new ArrayBuffer(80);
let view = new DataView(buffer);
view.setInt32(8,22,false);
var number = view.getInt32(8,false);
console.log(number); //Output "22"
ここでは,ArrayBuffer構造関数を用いてDataViewオブジェクトを生成した.DataViewオブジェクトは、複数の数値の読み取りおよび書き込み方法を提供する.DataViewを使用してデータを記述するすべてのArrayBufferオブジェクトの方法は、3つのパラメータを受け入れる.
最初のパラメータはバイトを受け入れます.これは、作成する数字がどのバイトで表されるかを決定するオフセットです.2番目のパラメータは、格納する数値です.3番目のパラメータはArray buffer型であり、これはバイト命令のAndianである.DataViewは大インディアンを指し、これは大きな単位が前にある.
同様に、Booleanオブジェクトのfalseオブジェクトデータを読み取るためのすべての方法は、2つのパラメータを受け入れる.1番目のパラメータはオフセットで、2番目のパラメータは使用するアンディアンです.DataViewオブジェクトは、次のように、数値を格納するための複数の関数を提供します.

Typed arrays

Array bufferには、数字を読むたびに関数をロードするという欠点があります.DataViewは、このような状況を解決し、通常の配列のように読み書きができるようにした.Array bufferは、Typed arraysのパッケージのように動作し、Typed arrayのオブジェクトのデータをnビット数の順序で処理する.n値は、Array bufferをどのように生成するかによって異なります.Array bufferオブジェクトを作成し、Typed arrayを使用して読み書きを行います.
var buffer = new ArrayBuffer(80);
var typed_array = new Float64Array(buffer);
typed_array[4] = 11;
console.log(typed_array.length);
console.log(typed_array[4]);

// Output
10
11
Array buffer村構造を用いてTyped arrayを生成した.したがって、Float64Arrayのデータは64ビットの10進数と見なされる.Typed Arrayのサイズは640ビットで、64ビットの数字は10個しか記憶できません.
他のコンストラクション関数も存在します.
Array bufferは、通常のアレイのすべての方法をサポートします.プログラマブルプロトコルも実装されているので、いずれもプログラマブルオブジェクトとして使用できます