개발/JavaScript

[μžλ°”μŠ€ν¬λ¦½νŠΈ ] 2차원 λ°°μ—΄ 쀑볡 μ œκ±°ν•˜κΈ°

밍(Ming) 🐈‍⬛ 2022. 4. 9. 06:46
728x90
λ°˜μ‘ν˜•

1차원 λ°°μ—΄μ—μ„œ 쀑볡을 μ œκ±°ν•˜λŠ” 방법은 λ‹€μ–‘ν•˜λ‹€! 

set, filter, reduce λ“± 상황에 λ”°λΌμ„œ λ‹€μ–‘ν•˜κ²Œ μ“Έ 수 μžˆλŠ”λ°, ν”„λ‘œμ νŠΈλ₯Ό ν•˜λ‹€κ°€ λ°°μ—΄ 쀑볡 제거 ν•  일이 μžˆμ—ˆλŠ”λ°, 아무리 이 λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•΄λ„ 해결이 μ•ˆλ˜λŠ”κ²ƒμ΄λ‹€!! γ… γ…  

 

1차원 λ°°μ—΄ν•˜λ“―μ΄ ν•˜λ©΄ 될 것이라고 μƒκ°ν–ˆλŠ”λ°, 웬걸?!?

μ•„λ‹ˆ set, filter, indexOf λ“± λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ ν•΄κ²°ν•  수 μžˆλ‹€. 단지 1차원 배열보닀 살짝 μ½”λ“œκ°€ λ³΅μž‘ν•΄μ§ˆ 뿐이닀. 

 

 

계속 set으둜 μ‹œλ„ν–ˆμ—ˆλŠ”λ°....γ… γ… ....λ‚΄ μ‹œκ°„ ... γ…Ž.....

μš°μ„ , 2차원 배열을 1차원 λ°°μ—΄λ‘œ λ§Œλ“€μ–΄μ€˜μ•Όν•œλ‹€. 

 

let a = [
  [1, 2],
  [3, 4],
  [5, 6],
  [3, 4],
];

function arr(_arr) {
  return [...new Set(_arr.join("|").split("|"))]
    .map((v) => v.split(","))
    .map((v) => v.map((a) => +a));
}

let uniqueArr = arr(a);

 

β—Ύ join을 μ‚¬μš©ν•΄μ„œ 배열을 λ¬Έμžμ—΄λ‘œ λ°”κΏ”μ€λ‹ˆλ‹€. 

β—Ύ splitλ₯Ό μ‚¬μš©ν•΄μ„œ λ§Œλ“€μ–΄μ§„ ν•˜λ‚˜μ˜ λ¬Έμžμ—΄μ„ λ‹€μ‹œ λ‚˜λˆ•λ‹ˆλ‹€

β—Ύ set으둜 λ‚˜λ‰˜μ–΄μ§„ λ¬Έμžμ—΄μ˜ 쀑볡적인 뢀뢄을 μ œκ±°ν•©λ‹ˆλ‹€

β—Ύ map을 μ‚¬μš©ν•΄μ„œ ',' λ₯Ό μ€‘μ‹¬μœΌλ‘œ λ¬Έμžμ—΄μ„ λ‚˜λˆ„κ³  λ°°μ—΄λ‘œ λ³€ν™˜ν•΄μ„œ λ°˜ν™˜ν•©λ‹ˆλ‹€. 

β—Ύ + (plus) μ‚°μˆ μ—°μ‚°μžλ₯Ό λ”ν•΄μ„œ 문자λ₯Ό 숫자둜 λ³€ν™˜ν•΄μ€λ‹ˆλ‹€. 

 

 

 

 

 

 

 

ν•™μŠ΅μžλ£Œ 좜처

β—Ύ https://intrepidgeeks.com/tutorial/deduplication-of-javascript-array-and-twodimensional-array

728x90