2-1 λ°°μ—΄

Nomade_SimiaΒ·2021λ…„ 11μ›” 7일
0

πŸ“Œμ΄λ²ˆμ—λŠ” 배열에 λŒ€ν•΄ μ•Œμ•„λ³΄μž


πŸ“Œλ°°μ—΄μ΄λž€ 뭘까?

πŸ’‘ λ°°μ—΄μ΄λž€ λ²ˆν˜Έμ™€ λ²ˆν˜Έμ— λŒ€μ‘ν•˜λŠ” λ°μ΄ν„°λ“€λ‘œ 이루어진 자료 ꡬ쑰λ₯Ό λ§ν•œλ‹€.

JSμ—μ„œ 배열은 νƒ€μž…μ΄ μ—„κ²©ν•œ λ‹€λ₯Έ μ–Έμ–΄λ“€κ³Ό 달리 λ¬Έμžμ—΄, 숫자, 객체 심지어 λ‹€λ₯Έ λ°°μ—΄μ΄λ‚˜ μ–΄λ–€ νƒ€μž…μ˜ 값이라도 담을 수 μžˆλ‹€.


πŸ’» code

var a = [ 1, "2", [3]];

a.length// 3
a[0] === 1; // true
a[2][0] ===3; //true

λ°°μ—΄μ˜ ν¬κΈ°λŠ” 미리 μ •ν•˜μ§€ μ•Šκ³  μ„ μ–Έν•  수 있고 μ›ν•˜λŠ” 값을 μΆ”κ°€ν•˜λ©΄ λœλ‹€.


πŸ’» code

var a = [];
a.length // 0
a[0] = 1;
a[1] = "2";
a[2] = [3];
a.length // 3

λ°°μ—΄μ˜ μΈλ±μŠ€λŠ” 숫자인데 JSμ—μ„œ 배열은 객체의 ν•˜μœ„ νƒ€μž…μ΄λ―€λ‘œ ν‚€/ν”„λ‘œνΌν‹° λ¬Έμžμ—΄μ„ μΆ”κ°€ν•  수 μžˆλ‹€.
μ΄λ•Œ λ°°μ—΄μ˜ lengthλŠ” μ¦κ°€ν•˜μ§€ μ•ŠλŠ”λ‹€.


πŸ’» code

var a = [];

a[0] = 1;
a["foobar"] = 2;

a.length; //1
a["foobar"] // 2
a.foobar // 2

πŸ”₯μ΄λ•Œ ν‚€λ‘œ 넣은 λ¬Έμžμ—΄ 값이 ν‘œμ€€ 10μ§„μˆ˜ 숫자둜 νƒ€μž…μ΄ λ°”λ€Œλ©΄, 마치 λ¬Έμžμ—΄μ΄ μ•„λ‹Œ μˆ«μžν‚€λ₯Ό μ‚¬μš©ν•œ 것 같은 κ²°κ³Όκ°€ λ‚˜μ˜€λŠ” 것을 주의 ν•΄μ•Όν•œλ‹€.


πŸ’» code

var a = [];
a["13"] = 42;
a.length// 14

λ”°λΌμ„œ μš°λ¦¬λŠ” κ°€κΈ‰μ μœΌλ‘œ 배열에 λ¬Έμžμ—΄ νƒ€μž…μ˜ ν‚€/ν”„λ‘œνΌν‹°λ₯Ό μ‚¬μš©ν•˜μ§€ 말자!

πŸ“Œμœ μ‚¬ λ°°μ—΄?

가끔 코딩을 ν•˜λ‹€λ³΄λ©΄ 숫자 μΈλ±μŠ€κ°€ κ°€λ₯΄ν‚€λŠ” 값듀을 μ§„μ§œ λ°°μ—΄λ‘œ λ°”κΎΈκ³  싢을 λ•Œκ°€ μžˆλ‹€.
μ΄λŸ΄λ•ŒλŠ” λ°°μ—΄ μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μΌλ°˜μ μ΄λ‹€.

  • indexOf()
  • concat()
  • forEach()

πŸ’» code

function foo(){
  var arr = Array.prototype.slice.call(arguments);
  arr.push("bam");
  console.log(arr);
}

foo("bar", "baz"); // ["bar", "baz", "bam"]

ES6λΆ€ν„°λŠ” κΈ°λ³Έ λ‚΄μž₯ ν•¨μˆ˜ Array.from()이 이 일을 λŒ€μ‹ ν•œλ‹€.


πŸ’» code

var arr = Array.from(arguments);

πŸ”₯Array.from()μ—λŠ” λ‹€λ₯Έ κ°•λ ₯ν•œ κΈ°λŠ₯이 μžˆλŠ”λ° μ΄λŠ” 빈 배열을 μ΄ˆκΈ°ν™” μ‹œν‚€λŠ” 것이닀.


πŸ’» code

Array.from(
  {length : 20}, 			//μœ μ‚¬ λ°°μ—΄
  () => Array(10).fill(0)	// 각각 λ°°μ—΄ μΈλ±μŠ€μ— 적용
);

μœ„ μ½”λ“œλŠ” 0으둜 μ΄ˆκΈ°ν™” 된 20 X 10 배열을 returnν•œλ‹€.
μœ„μ™€ 같은 μ½”λ“œλ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” 것은 λ°°μ—΄μ˜ νƒ€μž…μ΄ object이기 λ•Œλ¬Έμ΄λ‹€.

πŸšͺ 마치며


μ˜€λŠ˜μ€ JS의 νŠΉλ³„ν•œ 배열에 λŒ€ν•΄ μ•Œμ•„λ³΄μ•˜λ‹€.

λ‹€λ₯Έ μ—„κ²©ν•œ μ–Έμ–΄λ“€κ³Ό 달리 자유둜운 JSμ—μ„œ 배열은 μ—¬λŸ¬ 였λ₯˜λ₯Ό λΏœμ–΄λ‚Ό 수 μžˆλŠ” μœ„ν—˜ν•œ 도ꡬ이닀. λ˜ν•œ λ‹€μŒ μ‹œκ°„μ— 배울 λ¬Έμžμ—΄μ„ λ³€κ²½ν• λ•Œ μœ μš©ν•œ λ„κ΅¬λ‘œ μž‘μš©ν•  수 μžˆλ‹€. (λ¬Έμžμ—΄λ„ μœ μ‚¬ 배열이닀!)

λ°°μ—΄μ˜ λ©”μ„œλ“œμ™€ νŠΉμ§•μ€ 잘 곡뢀 ν•΄λ‘μž! πŸ”₯πŸ”₯πŸ”₯

profile
μ½”λ”© μž˜ν•˜κ³  싢은 μ½”λ”©λͺ½ν‚€

0개의 λŒ“κΈ€