아하 로고
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
탈퇴한 사용자
탈퇴한 사용자20.05.14

순수 자바스크립트 Object 제거 질문

키값과 일치하는 Object를 한 번에 제거하고 싶습니다. for 문 두 개 말고 조금 더 효율적인 방법 있을까요?

const keyData=['0','3']; let objData=[ { key: '0', name: 'hi' }, { key: '2', name: 'hello' }, { key: '3', name: 'hello' } ]

55글자 더 채워주세요.
답변의 개수1개의 답변이 있어요!
  • 세련된메추라기119
    세련된메추라기11920.05.15

    for 문을 사용하지 않고 해결법은 없어보입니다. 저보다 고수가 있으시다면 아실 수 도 있겠네요.

    단, 만약 key가 중복되지 않는다면 objData를 object(dictionary)형태로 바꾸어 사용하시면 for문을 하나 줄일 수 있습니다. ( 말씀하신 효율성은 코딩의 간결함을 뜻하시는 거겠죠? 연산 퍼포먼스는 좀 더 찾아봐야 할겁니다. )

    만약 key가 중복되지 않고, 숫자로만 이루어진다면 objData를 단순히 array로 만들어도 될 거 같습니다. key가 연속된다면 제일 좋겠지만, 아니라면 빈곳에 undefined와 같은 값을 넣어서 사용하셔도 됩니다.

    key가 중복된다면 for문을 두번 쓸수 밖에 없을 듯 하고, 그나마 함수화 시켜서 코드 재사용을 하는것이 바람직해 보입니다.