[javascript]スキーム


1.配列


配列は、大量の情報の保存と管理に役立ちます.
配列は順序付きの値です.

アレイ宣言


かっこを使用して配列を作成し、各要素をカンマで区切ります.
let evens = [];
evens = [2, 4, 6, 8];
配列は順序付きの値で、順序はindexで、0から番号をつけます.値を要素と呼びます.

このインデックス番号を使用して、インデックス内の値をクエリーできます.
let fruits = ['apple', 'banana', 'painapple'];
//인덱스2의 값
fruits[2];	//painapple
//인덱스4의 값
fruits[4]; 	//undifined
配列内のインデックスは2まで存在し、4つのインデックスをクエリーして値をクエリーすると、定義された値がないことがわかり、undefinedが表示されます.
果物[2]の値をスイカ元素に変更することもできます.
fruits[2] = 'watermelon';
fruits = ['apple', 'banana', 'watermelon'];

length


変数が持つ属性(property)にアクセスするには、.(温点)を使用します.
.lengthは、配列に含まれる要素の数を長さで表すことができます.
let name = ['James', 'Jon', 'Adam', 'Micky', 'Smith'];

name.length; 	// 5

配列要素のデータ型


配列要素には多様な資料型がある.
string、number、boolen、関数、配列、オブジェクトなど
let arr = [ '과일', 64, { name: 'red' }, true, function() ]
ただし、上の図のように、要素を1行にまとめると、要素が多いと可読性が低下するので、下図のようにこれらの要素を分けて書きます.(最後の要素にはカンマは付けません.)
let arr = [
  '과일',
  64,
  { name: 'red' },
  true,
  function()
]

2.2 D配列


2 D配列は、アレイ内に配列された構造です.
2 D配列宣言は、配列にネストされています.
let 변수명 = [
  [element, element, ...],
  [element, element, ...],
  [element, element, ...]
];
let myNumber = [ 
  [0, 9],
  [73, 8],
  [10, 13]
];

//배열안에 배열이 또 들어가있는 구조이다. 
myNumber;	// [Array(2), Array(2), Array(2)]
配列内の要素(値)を検索する場合は、どうすればいいですか?
要するに、これは1次元の配列を探すのと同じです.2度だけ違うところを探す><
73万を出力したいと想像してみてください.
mynumberインデックス1の要素の配列にあります.
myNumber[1]; // [73, 8]
この配列では、73はインデックス0の要素である.
myNumber[1][0];	// 73
上の配列を表で表すとこうなります.

2 D配列を表す方法はマトリクスのようです.

3.繰り返し配列


複文で並べた要素を印刷してみてください.
a変数を持つすべての配列の要素を知りたい場合は、どうすればいいですか?
let a = [2, 4, 5, 9, 11];
a[0];
a[1];
a[2];
a[3];
上のように一つ一つ撮るのかな…?できますが、大変で、20要素しか撮影していなくても、もったいない時間を過ごすことができます.😭
indexが0から始まると,配列にどれだけの要素が存在するかを知っていた.lengthでわかります.
学習した内容に基づいてfor文を用いて配列内のすべての要素値を決定する.
条件
数字(i)はゼロから始まる.
数値(i)は配列の長さより小さいまで繰り返される.
数字(i)は1ずつ増加する.
let myNum = [73, 98, 86, 61];

//요소를 한번씩 출력
// i 변수는 index 자리에 들어간다. 
for(let i=0; i<myNum.length; i++) {
  console.log(myNum[n]);
}
すべての要素を追加
let myNum = [10, 20, 40, 10];
let sum = 0;

//요소를 모두 더한다.
for(let i=0; i<myNum.length; i++) {
  sum = sum + myNum[i];
}
 console.log(sum);	//80

4.配列方法


4-1. Array.isArray()


整列しているか確認できます.ブール値を返します.
配列図はtypeofで、「object」を押します.
JavaScriptでは配列はArrayオブジェクトであり「オブジェクト」に属するためである.
だからアリーであることを確認するためにArray.isArray()を使いました
Array.isArray('문자열');
false
Array.isArray(1234);
false
Array.isArray( [1, 2, 3] );
true

4-2. 配列要素の追加/削除(値)


配列要素は、特定の方法で追加または削除できます.

push()


配列の最後に新しい要素(値)を追加します.
let arr = ['code', 'table'];
//table 형태로 출력된다.
console.table(arr);

配列の最後にpushで「pre」を追加します.arr.push(...)の戻り値はarr.lengthです.
arr.push('pre');	// 3 (배열 길이가 반환)

console.table(arr);

pop()


配列の最後に要素を削除し、削除した要素を返します.
arr.pop();	//pre

console.table(arr);

shift()


配列の前の要素(最初のインデックス)を削除し、削除した要素を返します.
arr.shift();	//code

console.table(arr);

unshift()


配置前に新しい要素を追加します.
arr.unshift('create');	// 2
arr.unshift('create');	// 3
console.table(arr);

4-3. indexOf()


配列要素が含まれているかどうかを決定できます.
要素を含むindexを返し、配列にない要素が見つかった場合は-1を返します.
let words = ['I', 'am', 'blue'];
words.indexOf('am');	//1

words.indexOf('blue');	//2
	
words.indexOf('없는 단어'); //-1

words.indexOf('blue') !== -1 	//true

words.indexOf('없는 단어') !== -1	//false

4-4. slice()


sliceは、元の配列を変更せずに新しい配列をコピーしたり、使用するために任意の複数の配列を切り取ったりすることができます.
sliceの2つのパラメータはarr.slice(begin,end)(end未満)を切り取る.
beginは抽出開始点にインデックスを追加します.
beginがundefinedの場合、0番インデックスから切り取りが開始されます.
配列の長さが配列の長さより大きい場合は、空の配列を返します.
endには、抽出を終了するインデックスが含まれます.
📌 この場合、endインデックスを除いてカットすることに注意してください.
endを省略すると、slice()は配列の末尾(arr.length)に切り取られます.
アレイの長さより大きい場合でも、アレイの最後に切り取ります.
次の例では、arr.slice(3, 8)からarr[3]までの値を切り取ります.
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

arr.slice(3, 8); // [4,5,6,7,8]

とくせい


slice()は、ソースアレイから要素の浅いコピーを返します.
これがどういう意味なのか例を見てみましょう.
let drink = [
  'coke',
  'milktea',
  { coffee : 'americano' }
];

let newDrink = drink.slice(); 

newDrink[1] = 'water';	

newDrink[1]; // water	
drink[1];	// milktea

newDrink[2].coffee = 'latte';

newDrink[2];	//{coffee: "latte"}
drink[2];		//{coffee: "latte"}
slice()は、元の配列要素のアドレス値(要素が参照タイプである場合)をコピーします.
元の配列と新しい配列は同じアドレスを参照します.
したがって、参照タイプの要素が変更されると、変更は新しい配列と元の配列で変更されます.
元のタイプの場合、slice()は値を新しい配列にコピーします.したがって、1つの配列で文字列または数値を変更しても、他の配列には影響しません.
また、2つの配列のいずれかに新しい要素を追加しても、他の配列には影響しません.これは、2つの配列が要素がオブジェクトタイプである場合に参照されるアドレス値が同じであり、2つの配列が異なるアドレス値を有するためです.

4-4. splice()


splice()は、要素のクリップと追加を同時に行う方法です.
Splice(削除するインデックス、削除するエンティティ数、追加するエンティティ)
let arr = ["Hello", "today", "is", "Friday"];

// arr[1]~arr[3]의 요소를 지우고, 이 자리에 다른 요소를 넣어준다.
arr.splice(1, 3, "yesterday", "was", "Friday");

console.log(arr) // ["Hello", "yesterday", "was", "Friday"]

4-5. concat()


concat(引数)は、パラメータとして指定された配列または値を既存の配列に集計し、新しい配列を作成するか、既存の配列に要素を追加します.
パラメータが参照タイプの場合はアドレスをコピーし、値(文字列、数値など)のみの場合は値をコピーして追加します.
concat()もslice()のように薄いコピーを行います.
const arr1 = ['a', 'b', 'c'];
const arr2 = ['d', 'e', 'f'];
//arr1에 arr2를 붙인다. 
const arr3 = arr1.concat(arr2);

console.log(array3); // ['a', 'b', 'c', 'd', 'e', 'f']

4-6. join()


配列内のすべての要素を接続し、文字列を形成します.
arr.join([separator]);
separatorは、配列内の各要素を区切る文字列を提供します.区切り記号を省略すると、配列内の要素はカンマで区切られ、空の文字列の場合は文字なしで接続されます.
let a = ['아침', 2 , '점심', '저녁'];
let str1 = a.join();      // 아침,2,점심,저녁
let str2 = a.join(', ');  // 아침, 2, 점심, 저녁
let str3 = a.join(' + '); // 아침+2+점심+저녁
let str4 = a.join('');    // 아침2점심저녁

4-7. reverse()


並べ替え順を反転します.最初の要素が最後の要素になり、最後の要素が最初の要素になります.
const array1 = ['one', 'two', 'three'];
array1.reverse();	['three', 'two', 'one'];
リバースメソッドは、呼び出した配列を反転し、元の配列を変形して参照を返します.
const array1 = ['one', 'two', 'three'];

let array2 = array1.reverse();

array2;	//["three", "two", "one"]
array2[1] = 'middle';

array2;	// ["three", "middle", "one"]
array1;	// ["three", "middle", "one"]