배열에 담긴놈들을 하나하나 꺼내어 어떠한 작업을 한 뒤 새로운 배열을 반환한다. 여기서 하나하나 꺼내는기능을 활용할 수 도 있고 실제로 새로운 배열이 필요할때도 쓴다. 하나하나 꺼내서 쓰는경우는 리액트에서 많이 썼으므로 따로 언급하지 않고, 새로운 배열을 반환한다는 뜻은 let Arr = [{name:"aa", id:1},{name:"aa", id:2},{name:"aa", id:3},{name:"aa", id:4}] const newArr = Arr.map((element)=>(element.id)) //newArr 은 [1, 2, 3, 4] 이런 모습의 배열이 된다. 이런것이다. map으로 각각 객체들을 돌며 그놈들의 id값만 빼내어 새로운 배열을 만들었다. 위를 보면 알 수 있듯이 새로운 배열을 만..
장바구니 담기 기능을 구현하던중 해당 상품이 이미 장바구니에 담겨있는가를 파악해야 했다. 장바구니에담길배열.map(element => { const id = element.item; const value = element.value; 비교대상배열.map(elem => { if(elem.item === id && elem.value === value){ return(console.log(elem, "해당상품이 이미담겨있습니다")) }else{ return(console.log("unoverLap")) }}) }) 장바구니 담기를 누르면 해당 상품들이 장바구니에 담길 배열에 들어간체로 비교대상배열과 비교가 이루어져 중복된 객체만을 뽑아낸다. 이 상태에서 문제가 있었다. 뽑아내긴 하는데 리턴부분에 스프레드 연..
const handleCartValue = () => { {selectOption[0] ? setState(true) : setState(false)} } 이 과정에서 뜨는 문법 오류(경고) 정상 작동은하지만 짜증나게 노랗게 떠있으니 여간 거슬리는게 아니다. esLint 쓰면 자동으로 교정해주니 좋지만 이 경우의 오류는 본질적으로 뭘 고치길 원하는 것일까? 그냥 써있는 그대로다. 중첩되어있다는것이니까 풀어주면 사라진다. const handleCartValue = () => { selectOption[0] ? setState(true) : setState(false); }; 이런식이나 const handleCartValue = () => selectOption[0] ? setState(true) : set..
객체나 배열을 풀어 쓸 수 있다. 배열 const arr = ["a", "b", "c", "d"]; 위 배열을 각각의 변수에 담아야 한다고 치자. 원래의 방법이라면 const arr = ["a", "b", "c", "d"]; const first = arr[0]; const second = arr[1]; const third = arr[2]; const fourth = arr[3]; console.log(first, second, third, fourth) 이렇게 써야 하지만 구조분해할당을 쓰게되면 const arr = ["a", "b", "c", "d"]; const [first, second, third, fourth] = arr console.log(first, second, third, fourt..
1. findIndex const imarray = [{text:"aa", id:1}, {text:"bb", id:2}, {text:"cc", id:3}] const index = imarray.findIndex(i => i.text == "bb") //index에 1을 반환 객체가 들어있는 배열에서 배열의 특정 값을 조회하여 찾고 싶을때 쓸 수 있는 함수이다. 인자로 각 배열들을 받아 조건과 부합하면 해당객체의 배열번호를 알려주고(몇번째에 있는지) 만약 값이 배열 안에 존재하지 않는다면 -1을 반환한다. 2. reduce const array = ["a", "b", "c", "d"] const result = array.reduce((a, b, c, d) => {return a + b}, 1) cons..
function deletWord(e){ e.preventDefault(); const span = e.target; const li = span.parentNode; wordList.removeChild(li) const cleanWord = wordListArr.filter(function(element){ return element.id !== parseInt(li.id); }) wordListArr = cleanWord; saveWord() } Todo 리스트를 만들때 리스트 하나하나를 개별적으로 지워야 할때 사용한 filter함수. 배열.filter 로 작성하고 뒤에 콜백함수의 인자(element)로 각 배열들이 들어오고 필터는 들어온 배열과 다른 값을 비교하여 true 이면 유지하고 false..