[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ž…๋ฌธ : ์ง์ˆ˜๋Š” ์‹ซ์–ด์š” (๊ฐ„๋‹จ for๋ฌธ, Array.from ๋“ฑ ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ)

2024. 8. 5. 23:14ยท๐Ÿชด JavaScript & TypeScript/๐Ÿงฉ Algorithm
SMALL

8.5

 

์ฝ”ํ…Œ ์ž…๋ฌธ ๋ฌธ์ œ - ์ง์ˆ˜๋Š” ์‹ซ์–ด์š”

 

๊ฐ„๋‹จํ•˜๊ณ  ์‰ฌ์šด ๋ฌธ์ œ.


โ“ ๋ฌธ์ œ

์ •์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, n ์ดํ•˜์˜ ํ™€์ˆ˜๊ฐ€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋‹ด๊ธด ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

 

 

๐Ÿช„ ๋‚ด ์ฝ”๋“œ

function solution(n) {
    let answerArr = [];
    for (let i = 1; i <= n; i+=2) {
        answerArr.push(i);
    }
    return answerArr;
}

 

array ๋ฅผ ์ƒ์„ฑํ•œ ํ›„  for ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด 1๋ถ€ํ„ฐ n๊นŒ์ง€, 2์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜ (ํ™€์ˆ˜) ๋ฅผ ํ•˜๋‚˜์”ฉ ๋ฐฐ์—ด์— ๋„ฃ์–ด์ค€๋‹ค.

์ด ๋ฐฉ๋ฒ•์ด ๊ฐ€์žฅ ํ”ํ•˜๊ณ  ๊ฐ€๋…์„ฑ ์ข‹์€(?) ๋ฐฉ๋ฒ•์ธ ๊ฒƒ ๊ฐ™๋‹ค.

 

๋ฐฐ์—ด ์ƒ์„ฑ ํ›„   for ๋ฐ˜๋ณต๋ฌธ๊ณผ ํ•จ๊ป˜ array.push( ) ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

 

 


๐Ÿงธ ๋‹ค๋ฅธ ํ’€์ด

 

1) for ๋ฌธ ์•ˆ if๋ฌธ ์‚ฌ์šฉ

function solution(n) {
    const answer = []
    for(let i = 1; i <= n; i++){
        if(i % 2 !== 0){   // ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฐฐ์—ด์— ๋‹ด๊ธฐ
            answer.push(i)
        }
    }
    return answer;
}

 

๋‚ด ์ฝ”๋“œ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, for๋ฌธ์—์„œ 1์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜๋ฅผ ๋Œ๋ฆฌ๋ฉด์„œ, for๋ฌธ ์•ˆ if๋ฌธ์œผ๋กœ ํ™€์ˆ˜ ์กฐ๊ฑด์„ ๋ถ™์—ฌ์คฌ๋‹ค.

๊ทผ๋ฐ ๊ตณ์ด ์ฝ”๋“œ๋ฅผ ๊ธธ๊ฒŒ ๋Š˜์ผ ํ•„์š”๋Š” ์—†์„ ๋“ฏํ•ด ์ด ๋ฐฉ๋ฒ•๋ณด๋‹ค๋Š” ๋‚ด ๋ฐฉ๋ฒ•๋Œ€๋กœ ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

(ํ™€์ˆ˜ ์กฐ๊ฑด์ด ์•„๋‹ˆ๋ผ ๋” ๋ณต์žกํ•œ ์กฐ๊ฑด์ด๋ผ๋ฉด if ๋ฌธ์ด ํ•„์š”ํ•˜๊ฒ ์ง€๋งŒ)

 

 

2) Array.from ๊ณผ filter  ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ

const solution = (n) => 
    Array
        .from({ length: n }, (_, i) => i + 1) // n๊ฐœ ์›์†Œ, 1์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ๋ฐฐ์—ด ์ƒ์„ฑ
        .filter(i => i % 2 !== 0)   // ํ™€์ˆ˜๋งŒ ๊ฑธ๋Ÿฌ๋‚ด๊ธฐ

 

์•„์ง JS ๋ฌธ๋ฒ•์—์„œ ๋ชจ๋ฅด๋Š” ๊ฒŒ ๋งŽ์€ ๋‚˜ ใ… ใ… 

์ด ๋ฐฉ๋ฒ•๋„ ๊ทธ๋ ‡๋‹ค. (filter ๋ฉ”์„œ๋“œ๋Š” ์‚ฌ์šฉํ–ˆ์—ˆ๊ณ  Array.from ์€ ๋‚ฏ์„ค๋‹ค..)

 

Array.from ๊ณผ Array.filter ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด์ธ๋ฐ, (ES6) 

 

i )

Array.from ์€ ๋ฌธ์ž์—ด ๋“ฑ ์œ ์‚ฌ ๋ฐฐ์—ด(Array-like) ๊ฐ์ฒด๋‚˜ ์ดํ„ฐ๋Ÿฌ๋ธ”ํ•œ ๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ,

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/from

 

Array.from() - JavaScript | MDN

Array.from() ์ •์  ๋ฉ”์„œ๋“œ๋Š” ์ˆœํšŒ ๊ฐ€๋Šฅ ๋˜๋Š” ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด์—์„œ ์–•๊ฒŒ ๋ณต์‚ฌ๋œ ์ƒˆ๋กœ์šด Array ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

developer.mozilla.org

(๊ทธ๋ž˜์„œ ๋ฌธ์ž์—ด์„ ๋„ฃ์œผ๋ฉด ๋ฌธ์ž ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ์›์†Œ๋กœ ์ชผ๊ฐœ ๋ฐฐ์—ด์„ ์ƒ์„ฑ)

ii )

Array.filter ์€ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ์ฃผ์–ด์ง„ callbackํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œ์ผœ ์กฐ๊ฑด์— ๋งž๋Š” ์š”์†Œ๋งŒ์„ ๊ฐ–๋Š” ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

 

Array.prototype.filter() - JavaScript | MDN

The filter() method of Array instances creates a shallow copy of a portion of a given array, filtered down to just the elements from the given array that pass the test implemented by the provided function.

developer.mozilla.org

 

 

-

Array.from ์„ ํ†ตํ•ด for ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ฐฐ์—ด์— ์›์†Œ๋ฅผ push ํ•˜์ง€์•Š๊ณ ๋„, ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

์œ„ ๋ฌธ๋ฒ•์„ ๋ณด๋ฉด, n ๊ฐœ์˜ ๊ธธ์ด ๋ฐฐ์—ด์— 1์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์›์†Œ๋“ค์˜ ๋ฐฐ์—ด์„ ์ƒ์„ฑ.

๊ทธ ๋‹ค์Œ Array.filter ์„ ํ†ตํ•ด ๋ฐ”๋กœ ์›์†Œ ์ค‘ ํ™€์ˆ˜๋งŒ ๊ณจ๋ผ ์„ ํƒํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

SMALL

'๐Ÿชด JavaScript & TypeScript > ๐Ÿงฉ Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž…๋ฌธ : 2์ฐจ์›์œผ๋กœ ๋งŒ๋“ค๊ธฐ  (0) 2024.11.07
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ž…๋ฌธ : ์ œ๊ณฑ์ˆ˜ ํŒ๋ณ„ํ•˜๊ธฐ (Math.sqrt)  (0) 2024.09.18
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_ ์ž…๋ฌธ : ๋ฐฐ์—ด ๋’ค์ง‘๊ธฐ (Array.reverse, unshift ๋“ฑ)  (0) 2024.08.26
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_ ์ž…๋ฌธ : ๋ฐฐ์—ด์˜ ์œ ์‚ฌ๋„ (Array.filter, includes ๋ฉ”์„œ๋“œ)  (0) 2024.08.21
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด (filter, sort, ์‚ผํ•ญ์—ฐ์‚ฐ์ž)  (0) 2024.03.05
'๐Ÿชด JavaScript & TypeScript/๐Ÿงฉ Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ž…๋ฌธ : ์ œ๊ณฑ์ˆ˜ ํŒ๋ณ„ํ•˜๊ธฐ (Math.sqrt)
  • [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_ ์ž…๋ฌธ : ๋ฐฐ์—ด ๋’ค์ง‘๊ธฐ (Array.reverse, unshift ๋“ฑ)
  • [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_ ์ž…๋ฌธ : ๋ฐฐ์—ด์˜ ์œ ์‚ฌ๋„ (Array.filter, includes ๋ฉ”์„œ๋“œ)
  • [JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด (filter, sort, ์‚ผํ•ญ์—ฐ์‚ฐ์ž)
๋ จ๋””
๋ จ๋””
FE - ๊ฐœ๋ฐœ ๊ณต๋ถ€์˜ ๊ธฐ๋ก
  • ๋ จ๋””
    Ryeon's Devstory
    ๋ จ๋””
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (69)
      • ๐Ÿชด JavaScript & TypeScript (11)
        • ๐Ÿงฉ Algorithm (6)
      • ๐Ÿชด React (12)
      • ๐Ÿชด Next.js (8)
      • ๐Ÿชด HTML & CSS (2)
      • ๐Ÿชด DB & BaaS (5)
      • ๐Ÿชด Git &Github (0)
      • โœ๏ธ ํ”„๋กœ์ ํŠธ ๊ณผ์ • & ํšŒ๊ณ  (18)
      • โœ๏ธ Today what I Learned _T.. (11)
      • ๐Ÿ•Š๏ธ IT ์•„ํ‹ฐํด (0)
      • etc. (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • My Github ๐Ÿ˜บ
    • ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ๐ŸŽต๐ŸŽง (์ผ์ƒ,์Œ์•… ๋“ฑ)
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    NVM
    BAAS
    useEffect
    useMutation
    route handler
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ์—๋Ÿฌ
    ์˜ค๋ธ”์™„
    tailwind
    ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ
    reacthook
    props
    ํ‹ฐ์Šคํ† ๋ฆฌ๋ธ”๋กœ๊ทธ์Šคํ‚จ
    json-server
    ์˜์กด์„ฑ๋ฐฐ์—ด
    react
    Supabase
    fetch
    ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ
    Array.filter
    ๋ Œ๋”๋งํŒจํ„ด
    ์›น๊ฐœ๋ฐœ ๊ธฐ์ดˆ
    ๋น„๋™๊ธฐํ†ต์‹ 
    State
    ์ปดํฌ๋„ŒํŠธ๋ถ„๋ฆฌ
    Vite
    ๋ฆฌ์•กํŠธ์ฟผ๋ฆฌ
    Next.js
    axios
    reactquery
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
๋ จ๋””
[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ž…๋ฌธ : ์ง์ˆ˜๋Š” ์‹ซ์–ด์š” (๊ฐ„๋‹จ for๋ฌธ, Array.from ๋“ฑ ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”