다른 함수를 작성할 때 많은 시간을 할애할 때 일부 데이터로 작업하기 위해 범위를 만들고 싶을 수 있습니다. 범위는 시작 값과 끝 값이 있는 배열 또는 개체의 데이터를 나타냅니다.
많은 언어에는 범위를 생성하는 메소드가 내장되어 있습니다(예:to_a
). 루비:
('a'..'e').to_a => ["a", "b", "c", "d", "e"]
JavaScript에는 이에 대한 특정 내장 메서드가 없지만 범위를 구축할 수 있는 방법은 많습니다. 3가지를 보여드리겠습니다.
_.범위() – 로다쉬
숫자 범위를 만들고 가능한 한 빨리 원하는 경우 Lodash _.range()
를 사용할 수 있습니다. util 메소드.
이 메서드는 배열을 반환하고 세 가지 인수를 취합니다. 첫 번째는 start 범위의 두 번째, end 범위(최대) 및 단계의 세 번째 , 또는 값이 증가/감소합니다.
_.range(-2); // => [0, -1] _.range(1, 3); // => [1, 2] _.range(1, 10, 4); // => [1, 5, 9]
하나의 인수만 제공되는 경우 지정된 수까지 범위가 생성되는 방법에 유의하십시오. 또한 Lodash는 별도로 설치해야 하는 JavaScript 라이브러리임을 기억하십시오!
우리만의 만들기 범위() 기능.
약간의 오버헤드를 줄이려면 고유한 숫자 범위 함수를 만들 수 있습니다. 우리 자신의 범위를 만드는 것은 꽤 쉽습니다.
function range(start, end, step = 1){ if(start === end) return [start]; const range = []; for(let i = start; i <= end; i += step){ range.push(i); } return range; } range(1, 10, 4) // => [1, 5, 9] range(1, 10) // => [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
이것은 작성하기 쉽고 단 하나의 함수에 대해 Lodash와 같은 라이브러리를 가져오는 것을 피할 수 있습니다!
참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.
부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.
숫자가 아닌 범위 함수 만들기
이제 문자와 같이 숫자가 아닌 범위는 어떻습니까? JavaScript로 구현하기 위한 몇 가지 옵션이 있습니다.
여기서 우리는 charCodeAt()
를 사용할 것입니다. 메서드를 사용하여 숫자를 늘린 다음 String.fromCharCode()
를 사용하여 배열에 푸시합니다. , 문자 코드에서 문자를 반환합니다.
function charRange(start, stop) { const range = []; const end = stop.charCodeAt(0) for (let i = start.charCodeAt(0); i <= end; i++){ range.push(String.fromCharCode(i)); } return range; }; charRange('A','F') // => [ 'A', 'B', 'C', 'D', 'E', 'F' ]
생각보다 쉬웠죠?
결론
이제 JavaScript로 직접 범위를 만드는 것이 얼마나 쉬운지 알게 되었습니다. 이 편리한 기능을 저장해 두세요. 언젠가는 꼭 사용하게 될 것입니다!