TIL 11,12

Churro.ยท2021๋…„ 6์›” 29์ผ
0
post-thumbnail

โญ๏ธ ๋ฐฐ์—ด, ๊ฐ์ฒด keypoint โ—๏ธ

๋ฐฐ์—ด = array

๊ฐ์ฒด = obj

.

๐Ÿ“Œ str[0]

๋ฌธ์ž์—ด์˜ 0๋ฒˆ์งธ index ์ถœ๋ ฅ

'this' ๋ผ๋Š” string(๋ฌธ์ž์—ด)์ด ์žˆ์„ ๋•Œ,

str[1] ์ž…๋ ฅํ•˜๋ฉด,

this์˜ ์ฒซ๋ฒˆ์งธ index์ธ t ์ถœ๋ ฅ.
.

๐Ÿ“Œ array[1]

๋ฐฐ์—ด์˜ 1๋ฒˆ์งธ index ์ถœ๋ ฅ
.

๐Ÿ“Œ array.slice(start,end) โ†’ end-1๊นŒ์ง€

[1, 2, 3, 4, 5, 6, 7] ์ด๋ผ๋Š” ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ,

array.slice(0,3) ์ž…๋ ฅํ•˜๋ฉด // index 0 ๋ถ€ํ„ฐ index 2๊นŒ์ง€ ์ถœ๋ ฅ

[1, 2, 3] ์ถœ๋ ฅ๋œ๋‹ค.

array.slice(2,6) ์ž…๋ ฅํ•˜๋ฉด // index 2๋ถ€ํ„ฐ index 5๊นŒ์ง€ ์ถœ๋ ฅ

[3, 4, 5, 6]

.

๐Ÿ“Œ function allKeys (obj) {

for (let insu in obj) { // [key:value]๋ฅผ ๊ฐ€์ง„ obj ์•ˆ์— ๋ชจ๋“  key๋ฅผ insu๋ผ๋Š” ๋ณ€์ˆ˜๋ช…์œผ๋กœ ์ง€์ •. ๋ณ€์ˆ˜๋ช…์„ ๋ฐ˜๋ณต์‹œํ‚ฌ๊ฑฐ์•ผ. ๋ผ๋Š” ๋œป.

์ฆ‰, [key:value] ์ „์ฒด๊ฐ€ obj ์ธ ๊ฒƒ.

key๋ฅผ insu ๋ผ๋Š” ๋ณ€์ˆ˜๋ช…์œผ๋กœ ์ง€์ •ํ•œ ๊ฒƒ.

๊ทธ๋ ‡๋‹ค๋ฉด, obj์˜ value๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ? โ†’ obj[insu]

insu๋Š” ๋ณ€์ˆ˜๋ช…์ด๊ธฐ ๋•Œ๋ฌธ์— obj['insu']๋ผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

obj['insu']๋ผ๊ณ  ์“ธ ๊ฒฝ์šฐ๋Š” insu๋ผ๋Š” ๋ณ€์ˆ˜๋ช…์˜ ๊ฐ’์ด name ์ผ ๊ฒฝ์šฐ๋‹ค

obj['name'] ํ˜น์€ obj.name ๋ผ๊ณ  ์ž…๋ ฅํ–ˆ์„ ๋•Œ, value๊ฐ’์„ ํ˜ธ์ถœํ•œ๋‹ค.

.

์ƒ์„ธ์„ค๋ช… :

key : value ํ˜•์‹์œผ๋กœ,

name : 'Anna' ๊ฐ€ ์žˆ๋‹ค. โ† ์ด ์ „์ฒด ๋ถ€๋ถ„์„ property๋ผ๋Š” ๋ณ€์ˆ˜๋ผ ์นญํ•˜์ž.

์—ฌ๊ธฐ์„œ, property์˜ value๊ฐ’์ธ 'Anna'๋ฅผ ์ถœ๋ ฅํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• :

property.name

     OR

property['name']

Butโ—๏ธ ๋ณ€์ˆ˜๋ฅผ ์“ธ ๋•Œ๋Š” bracket notation [  ] ์‚ฌ์šฉ   โ—๏ธ

โ†’ ์œ„์— insu ๋ณ€์ˆ˜๋ช… ์ผ์„๋•Œ obj[insu]๋ผ๊ณ ๋งŒ ์จ์ฃผ๋Š” ์ด์œ .

.

< Another example >

let obj = {
key : [ 'Tim' , 'Kim' ]
};

์—ฌ๊ธฐ์„œ, obj[key] ์ž…๋ ฅํ•˜๋ฉด, value๊ฐ’์ธ ['Tim' , 'Kim'] ์ด ์ถœ๋ ฅ๋œ๋‹ค.

.

๋ฐฐ์—ด

element : ๊ฐ’

index : ์ˆœ์„œ (๋ฒˆ์งธ) 0๋ถ€ํ„ฐ ์‹œ์ž‘

์›๋ณธ ๋ฐฐ์—ด์„ ๋ณ€ํ™”์‹œํ‚ค๋Š”(์ˆ˜์ •ํ•˜๋Š”) ๋ฉ”์„œ๋“œ

๐Ÿ“Œ .unshift() ๋งจ ์•ž element ์ถ”๊ฐ€ - ๊ธธ์ด ๋ฐ˜ํ™˜

๐Ÿ“Œ .shift() ๋งจ ์•ž element ์‚ญ์ œ - ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๋‚˜์˜ด

๐Ÿ“Œ .push() ๋งจ ๋’ค element ์ถ”๊ฐ€ - ๊ธธ์ด ๋ฐ˜ํ™˜

๐Ÿ“Œ .pop() ๋งจ ๋’ค element ์‚ญ์ œ - ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๋‚˜์˜ด

์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ๋ฉ”์†Œ๋“œ (์›๋ณธ ๋ฐฐ์—ด์„ ๋ฐ”๊พธ์ง€ ์•Š๋Š” ๋ฉ”์†Œ๋“œ)

๐Ÿ“Œ .slice()

Array.prototype.slice ๋Š” start ๋ถ€ํ„ฐ end ๊นŒ์ง€ ๋Œ€์ƒ ๋ฐฐ์—ด์—์„œ ๊บผ๋‚ด์™€ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ๊ฐ’์„ ์ง‘์–ด ๋„ฃ๋Š”๋‹ค. start ์™€ end ๊ฐ€ ์ฃผ์–ด์ง€์ง€ ์•Š์œผ๋ฉด ์ „์ฒด ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•œ๋‹ค. โ†’ ์–•์€ ๋ณต์‚ฌ
let arr= [1,2,3] arr.slice()
โ†’ [1,2,3] ์ถœ๋ ฅ


.unshift() ์‚ฌ์šฉ์˜ˆ์‹œ

โ–ช๏ธ ๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ์‚ญ์ œ๋œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
function removeFromFront(arr) {
  return arr.shift
}

๊ฐ€ ์•„๋‹ˆ๋ผโ—๏ธ 

function removeFromFront(arr) {
  arr.shift();
  return arr;
}

.shift() ์‚ฌ์šฉ์˜ˆ์‹œ

โ–ช๏ธ ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๊ฐ€ ์‚ญ์ œ๋œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
function removeFromBack(arr) {
  arr.pop()
  return arr;
}
   โ–ถ๏ธ removeFromBack([1,2,3]) ์ž…๋ ฅ์‹œ, [1,2] ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. (์ œ๊ฑฐ๋˜๊ณ  ๋‚จ์€ ๊ฐ’์ด ์ถœ๋ ฅ๋จ)
     (์›๋ž˜ arr๊ฐ€ ์ˆ˜์ •๋˜๋Š” ์›๋ฆฌ)

โญ๏ธ let arr= [1,2,3]
	 arr.pop();
โ–ถ๏ธ ์ด ๊ฒฝ์šฐ์—๋Š” 3 ์ด ์ถœ๋ ฅ๋œ๋‹ค.
	(์ œ๊ฑฐ๋˜๋Š” ๊ฐ’์ด ์ถœ๋ ฅ๋จ)

.slice() ์‚ฌ์šฉ์˜ˆ์‹œ

โ–ช๏ธ ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๊ฐ€ ์ œ์™ธ๋œ **์ƒˆ๋กœ์šด ๋ฐฐ์—ด**์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
function removeFromBackOfNew(arr) {
 return arr.slice(0, arr.length-1)
}

โ–ถ๏ธ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•  ๋•, ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๊ธฐ์กด ๋ฐฐ์—ด์„ ์ˆ˜์ •ํ•˜๋Š” .pop() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

.slice() ์™€ .push() ํ•จ๊ป˜ ์‚ฌ์šฉ์˜ˆ์‹œ

๋งจ ๋’ค์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•œ ๋ฐฐ์—ด์„ ๊ฒฐ๊ณผ๋กœ ์–ป๊ณ  ์‹ถ์€๋ฐ, push๋Š” '๊ธธ์ด'๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ผ ๋ชป์“ฐ๊ฒ ๊ณ ,,, ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜์ง€?

โ–ถ๏ธ ์ด๋Ÿด ๋•Œ, slice ์™€ push ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค ~!

โ–ช๏ธ ๋ฐฐ์—ด๊ณผ ์š”์†Œ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ƒˆ๋กœ์šด ์š”์†Œ๊ฐ€ ๋งจ ๋’ค์— ์ถ”๊ฐ€๋œ **์ƒˆ๋กœ์šด ๋ฐฐ์—ด**์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
function addToBackOfNew(arr, el) {
  const newArr = arr.slice();   โ–ถ๏ธ slice๋ฅผ ํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์ด ํƒ„์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜์ธ newArr๋ฅผ ๋งŒ๋“ค์–ด์ค˜์„œ ๊ทธ ์†์— ์ƒˆ ๋ฐฐ์—ด์„ ๋„ฃ๋Š”๊ฒƒ์ž„
  newArr.push(el);       // ์ด ๋ถ€๋ถ„ ๊ณ„์‚ฐ๊ฐ’์€ '๊ธธ์ด'๋ฐ˜ํ™˜์ด์ง€๋งŒ,
  return newArr;         // ์ตœ์ข…์ ์œผ๋กœ newArr ๋ฆฌํ„ดํ•˜๋‹ˆ๊นŒ ๊ฒฐ๊ตญ ๋ฐฐ์—ด ์ž์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค
}

.slice() ์™€ .unshift() ํ•จ๊ป˜ ์‚ฌ์šฉ์˜ˆ์‹œ

๋งจ ์•ž์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•œ ๋ฐฐ์—ด์„ ๊ฒฐ๊ณผ๋กœ ์–ป๊ณ  ์‹ถ์€๋ฐ, unshift๋Š” '๊ธธ์ด'๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฒ ์†Œ๋“œ๋ผ ๋ชป์“ฐ๊ฒ ๊ณ ,,, ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜์ง€?

โ–ถ๏ธ ์ด๋Ÿด ๋•Œ, slice์™€ unshift๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค ~!

โ–ช๏ธ ๋ฐฐ์—ด๊ณผ ์š”์†Œ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋งจ์•ž์— ์ƒˆ๋กœ์šด ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋œ **์ƒˆ๋กœ์šด ๋ฐฐ์—ด**์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
function addToFrontOfNew(arr, el) {   // arr=[1,2,3]  el=0 ์ด๋ผ๊ณ  ์น˜๋ฉด
	const newArr= arr.slice()           // newArr=[1,2,3]  (slice()๋กœ ๋ณต์‚ฌ๋งŒ ํ–ˆ์œผ๋‹ˆ๊นŒ)
	newArr.unshift(el)                  // unshift๋Š” ๊ธธ์ด ๋ฐ˜ํ™˜ํ•˜๋‹ˆ๊นŒ, ์ด ๋ถ€๋ถ„ ๊ณ„์‚ฐ๊ฐ’์€ 4
	return newArr;                     // ๋ฐฐ์—ด ์ž์ฒด๋ฅผ ๋ฆฌํ„ดํ•˜๋‹ˆ๊นŒ, ์ตœ์ข…์ ์œผ๋กœ [0,1,2,3] ์ถœ๋ ฅ
}

< ์›๋ž˜ ๋ฐฐ์—ด ์ˆ˜์ • ๋ฆฌํ„ด vs. ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๋ฆฌํ„ด > ๋น„๊ต

โ–ช๏ธ ๋ฐฐ์—ด๊ณผ ์ธ๋ฑ์Šค๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ ์š”์†Œ๋ฅผ ์ œ์™ธํ•œ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๐Ÿ”ถ push ์‚ฌ์šฉ

function getAllElementsButNth(arr, n) {      โ–ถ๏ธ arr=[1,2,3]  n=1 ์ด๋ผ๊ณ  ๊ฐ€์ •. (2๋ฅผ ๋บ„๊ฑฐ์ž„)
  let result = [];

  for (let i = 0; i < arr.length; i++) {      i=0
    if (i !== n) {                            i๊ฐ€ 1์ด ์•„๋‹ˆ๋ผ๋ฉด    (i๊ฐ€ 1์ธ ์ฐจ๋ก€๊ฐ€ ์˜ค๋ฉด ๋ฌด์‹œ๋˜๊ณ  ๋ฐ”๋กœ i=2๋กœ ๋„˜์–ด๊ฐ. if๋ฌธ์ด for๋ฌธ ์•ˆ์— ๊ฐ‡ํ˜€์žˆ์œผ๋‹ˆ, for๋ฌธ ์•ˆ์—์„œ ๊ณ„์† ๋ฐ˜๋ณต๋ ์ˆ˜๋ฐ–์— ์—†์Œ.)
      result.push(arr[i]);                    [].push(arr[0])   ๋งจ๋’ค์— ์š”์†Œ์ถ”๊ฐ€ (๊ธธ์ด๋ฐ˜) [1]
    }
  }                                          

  return result;                              โ–ถ๏ธ ์ตœ์ข…์ ์œผ๋กœ [1,3] ์ถœ๋ ฅ
}
โ–ช๏ธ ๋ฐฐ์—ด๊ณผ ์ธ๋ฑ์Šค๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ ์š”์†Œ๋ฅผ ์ œ์™ธํ•œ **์ƒˆ๋กœ์šด ๋ฐฐ์—ด**์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๐Ÿ”ถ slice ์‚ฌ์šฉ

function getAllElementsButNth(arr, n) {
  if(n > arr.length) {                 
    return arr;
  }

  let arr1= arr.slice(0,n)
  let arr2= arr.slice(n+1,arr.length)
  return arr1.concat(arr2);
}

๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’ ๊ตฌํ•˜๊ธฐ

let array = [1,2,3,4,5]

array[array.length - 1] // 5 ์ถœ๋ ฅ.

โ†’ array[4] ๋Š” array์˜ 4๋ฒˆ์งธ index ์ถœ๋ ฅํ•˜๋ผ๋Š” ์˜๋ฏธ๋‹ˆ๊นŒ ๋งจ ๋งˆ์ง€๋ง‰์— ์žˆ๋Š” 5 ์ถœ๋ ฅ๋จ.

.

๊ฐ์ฒด

๋ฐฐ์—ด vs. ๊ฐ์ฒด

๋ฐฐ์—ด : ์ˆœ์„œ๊ฐ€ ์žˆ๋‹ค

๊ฐ์ฒด : ์˜๋ฏธ(key)๊ฐ€ ์žˆ๋‹ค

๐Ÿ“Œ for ... in ๊ฐ์ฒด์— ์“ฐ๋Š” ๋ฐ˜๋ณต๋ฌธ

๐Ÿ“Œ for ... of ๋ฐฐ์—ด์— ์“ฐ๋Š” ๋ฐ˜๋ณต๋ฌธ

.

let tweet = {
writer: 'stevelee',
createdAt: '2019-09-10 12-03:33',
content: 'ํ”„๋ฆฌ์ฝ”์Šค ์žฌ๋ฐŒ์–ด์š”!'
};

์ž…๋ ฅ                       ์ถœ๋ ฅ
tweet.content      // -> "ํ”„๋ฆฌ์ฝ”์Šค ์žฌ๋ฐŒ์–ด์š”!"
tweet['content']   // -> "ํ”„๋ฆฌ์ฝ”์Šค ์žฌ๋ฐŒ์–ด์š”!"
profile
I, sum of records.

0๊ฐœ์˜ ๋Œ“๊ธ€