코딩기록

[84] addTodo / ... 스프레드 문법 - 배열안 객체에 새로운 객체 추가 본문

프론트/JS)코딩테스트

[84] addTodo / ... 스프레드 문법 - 배열안 객체에 새로운 객체 추가

뽀짝코딩 2024. 8. 8. 21:01
728x90

 

문제

 

todos 배열과 새로운 요소(예를 들어 { id: 4, content: 'Test', completed: false })를 인수로 전달하면 todos 배열의 선두에 새로운 요소를 추가해 todos 배열을 반환한다.

  • for 문, for…in 문, for…of 문, Array#forEach, Array#unshift는 사용하지 않는다.
  • todos 배열을 변경하지 않는다.

 

 

const addTodo = (todos, newTodo) => { /* Do something */ };

const todos = [
  { id: 3, content: 'HTML', completed: false },
  { id: 2, content: 'CSS', completed: true },
  { id: 1, content: 'Javascript', completed: false },
];

console.log(addTodo(todos, { id: 4, content: 'Test', completed: false }));
/*
[
  { id: 4, content: 'Test', completed: false },
  { id: 3, content: 'HTML', completed: false },
  { id: 2, content: 'CSS', completed: true },
  { id: 1, content: 'Javascript', completed: false }
]
*/

 


풀이

1. 스프레드 문법을 사용.

먼저 매개변수를 [ ] 배열로 씌운다.

그리고 ... 스프레드 문법을 사용해 배열안에 넣는다.

 

const addTodo = (todos, newTodo) => { 
  return [...[newTodo], ...todos];
};


console.log(addTodo(todos, { id: 4, content: 'Test', completed: false }));
/*
[
  { id: 4, content: 'Test', completed: false },
  { id: 3, content: 'HTML', completed: false },
  { id: 2, content: 'CSS', completed: true },
  { id: 1, content: 'Javascript', completed: false }
]
*/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
Comments