1773. Count Items Matching a Rule
오랜 시간 동안 고민을 해봤지만, 배열이 여러 개 겹쳐있는 것이 아직 익숙치 않아서 기본적인 내용으로 풀이를 진행했다. rulekey
값을 변수로 지정하는 것이 좋을 것 같은데? 라는 고민을 계속 해도 해결이 되지 않아서 아래처럼 풀이를 했는데 역시나 남들은 어찌나 그렇게 간단하고 명쾌한 코드를 작성하는지..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | var countMatches = function(items, ruleKey, ruleValue) { let result = 0 if (ruleKey === 'type') { for (i = 0; i < items.length; i++) { if (ruleValue === items[i][0]) { result++ } } } else if (ruleKey === 'color') { for (i = 0; i < items.length; i++) { if (ruleValue === items[i][1]) { result++ } } } else { for (i = 0; i < items.length; i++) { if (ruleValue === items[i][2]) { result++ } } } return result }; | cs |
아래 코드처럼 객체로 넣을 생각을 하긴 했지만, 거기서 더이상 사고가 더 나아가지 못했다ㅠ 그리고 중요한 것은 item[types[ruleKey]] === ruleValue
이러한 코드를 짤 수 있도록 객체의 개념에 익숙해져야하는데 아직은 그렇게까진 안되는 것 같다. 이런 좋은 코드를 여러번 봐야할듯!
1 2 3 4 5 6 7 8 9 10 11 | var countMatches = function(items, ruleKey, ruleValue) { const types = { "type": 0, "color": 1, "name": 2 } return items.filter((item) => { return item[types[ruleKey]] === ruleValue; }).length; }; | cs |