프론트/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 }
]
*/
반응형