๐Ÿ‘‰ ์ฝ”ํ”Œ๋ฆฟ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 7๋ฒˆ

function toObject(arr)


๋‚ด๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ธ”๋กœ๊ทธ์— ์ ๋Š” ์ด์œ ๋Š”

๋ฌธ์ œ๊ฐ€ ์–ด๋ ต์ง„ ์•Š์•˜์ง€๋งŒ ๋‚˜๋Š” ๋„ˆ๋ฌด ์–ด๋ ต๊ฒŒ ํ’€์—ˆ๊ณ , Reference ์ฝ”๋“œ๋Š” ์—„์ฒญ ์‰ฝ๊ฒŒ ์“ฐ์—ฌ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ž˜์„œ ๊ธฐ๋กํ•ด๋‘๊ธฐ ์œ„ํ•ด ๋ธ”๋กœ๊น…์„ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค!


  • ๋ฌธ์ œ : 2์ฐจ์› ๋ฐฐ์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ด

  • ์ฃผ์˜์‚ฌํ•ญ :

  1. arr[i].length๋Š” 0 ๋˜๋Š” 2
  2. ์ค‘๋ณต๋˜๋Š” ํ‚ค์˜ ๊ฒฝ์šฐ, ์ดˆ๊ธฐ์˜ ๊ฐ’์„ ์‚ฌ์šฉ
  3. ๋นˆ ๋ฐฐ์—ด์ผ ๊ฒฝ์šฐ, ๋นˆ ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ด
  • ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ
const arr = [
  ['make', 'Ford'],
  ['model', 'Mustang'],
  ['year', '1964'],
  ['make', 'Bill'],
];

let output = toObject(arr);

console.log(output) // -->
{
  make : 'Ford'
  model : 'Mustang',
  year : '1964'
}
  • pseudocode(์ˆ˜๋„์ฝ”๋“œ)
  1. ๊ฐ’์„ ์ €์žฅํ•ด๋†“๊ธฐ ์œ„ํ•ด ๋นˆ ๊ฐ์ฒด๋ฅผ ํ• ๋‹นํ•œ๋‹ค.
  2. 2์ฐจ์› ๋ฐฐ์—ด์„ ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋‹ค ํ™•์ธํ•œ๋‹ค.
  3. ์ค‘๋ณต๋˜๋Š” ์š”์†Œ(ํ‚ค ๊ฐ’)์ด ์žˆ๋Š”์ง€, ์žˆ์œผ๋ฉด undefined๋กœ ๊ฐ’์„ ์—†์• ์ค€๋‹ค.
  4. i[0]์€ key, i[1]์€ value ๊ฐ’์œผ๋กœ ํ• ๋‹นํ•œ๋‹ค.
  5. ๊ฐ์ฒด์˜ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.
  6. undefined ๋Š” ์ œ๊ฑฐํ•ด์ค€๋‹ค (๋นˆ ๋ฐฐ์—ด์ผ ๊ฒฝ์šฐ, ์ค‘๋ณต๋˜๋Š” ์š”์†Œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•œ๋‹ค.)
  7. ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.



  • ๋‚˜์˜ code
function toObject(arr) {
  // TODO: ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

  let obj = {};

  if (arr.length === 0) {
    return {};
  }

  for (let i = 0; i < arr.length; i++) {
    let key = "";
    let value = "";

    for (let j = i + 1; j < arr.length; j++) {
      if (arr[i][0] === arr[j][0]) {
        arr[j][0] = undefined;
      }
    }
    key = arr[i][0];
    value = arr[i][1];
    obj[key] = value;

    delete obj.undefined;
  }

  return obj;
}


์ •๋ง ๊ธธ๊ฒŒ๋„ ์ผ๋‹คโ€ฆ ํ‘ธ๋Š”๋ฐ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ์ง„ ์•Š์•˜์ง€๋งŒ ๊ธธ๊ฒŒ ์ž‘์„ฑํ•˜๊ณ  ํ’€์–ด์„œ ๊ทธ๋Ÿฐ์ง€ ์พŒ๊ฐ์€ ์งœ๋ฆฟํ–ˆ๋‹ค!!:+1:

๊ทธ ๋‹ค์Œ์€ ๋ ˆํผ๋Ÿฐ์Šค ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด๋ณด์žโ€ฆ..


let result = {};

for (let i = 0; i < arr.length; i++) {
  if (arr[i].length > 0 && result[arr[i][0]] === undefined) {
    result[arr[i][0]] = arr[i][1];
  }
}

return result;


์›ฌ๋งŒํ•˜๋ฉด ๋‚˜๋„ ์‰ฝ๊ฒŒ ์งœ๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋Š”๋ฐ ์ด๋ฒˆ ๋ฌธ์ œ ๋งŒํผ์€ ์ •๋ง ๊ธธ์–ด์กŒ๋˜ ๊ฒƒ ๊ฐ™๋‹คโ€ฆ

๋ ˆํผ๋Ÿฐ์Šค ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ฐ˜์„ฑํ•˜๊ฒŒ ๋˜๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ๋‹ค ใ…œใ…œใ…œ ๋ฌผ๋ก  ํ’€์—ˆ๋‹ค๋Š”๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•˜์ง€๋งŒ

์ด์ œ ํ’€์—ˆ์œผ๋‹ˆ๊นŒ ๋˜ ๊ฐ„๋žตํ•˜๊ฒŒ ์“ฐ๊ณ  ์‹ถ์€ ์š•์‹ฌ(?) ์ด ์ƒ๊ธด๋‹คโ€ฆ ์š•์‹ฌ์€ ๋์ด ์—†๋Š” ๊ฒƒ์ธ๊ฐ€โ€ฆ ํ•˜ํ•˜



๐Ÿ‘Š ๋‚ด์ผ์˜ TIW(today I Will)

Javascript DOM