객체와 문자열 리터럴 배열을 받는 함수를 작성해야 하며, 문자열 배열에 나타난 키와 함께 필터링된 객체를 반환합니다.
예를 들어 - 객체가 {"a":[], "b":[], "c":[], "d":[]}이고 배열이 ["a", "d"]인 경우 출력은 -
여야 합니다.{“a”: [], “d”:[]}
따라서 이 함수의 코드를 작성해 보겠습니다.
객체가 배열에 있는지 여부에 관계없이 객체의 키를 반복할 것입니다. 존재하는 경우 해당 키 값 쌍을 새 객체로 밀어넣고 그렇지 않으면 계속 반복하고 마지막에 새 객체를 반환합니다.
예시
const capitals = { "usa": "Washington DC", "uk": "London", "india": "New Delhi", "italy": "rome", "japan": "tokyo", "germany": "berlin", "china": "shanghai", "spain": "madrid", "france": "paris", "portugal": "lisbon" }; const countries = ["uk", "india", "germany", "china", "france"]; const filterObject = (obj, arr) => { const newObj = {}; for(key in obj){ if(arr.includes(key)){ newObj[key] = obj[key]; }; }; return newObj; }; console.log(filterObject(capitals, countries));
출력
콘솔의 출력은 -
{ uk: 'London', india: 'New Delhi', germany: 'berlin', china: 'shanghai', france: 'paris' }