//테스트 코드
s = ['abcde', 'qwer']
var getTextLength = function(str) {//str에 특정문자를 넣으면
var len = 0; //len이라는 변수는 0부터 시작하고
for (var i = 0; i < str.length; i++) {//넣은 문자의 길이만큼 반복되면서
if (escape(str.charAt(i)).length == 6) {//i번째
len++;
}
len++;
}
return len; }
출처: https://solbel.tistory.com/413 [개발자의 끄적끄적]
JavaScript / Object / String.length / 문자열의 길이 반환하는 속성
length 함수는 이전에도 쓴 바 있으나, 배열의 수를 세기 위해 사용했었다
//이렇게...
product라는 배열이 있을 경우
var length = product.length
그냥 사용하면 문자 수를 셀 수 있는 함수 였다.
//예시
abcde.length //4출력
문자 수를 센 후, 2로 나눠 해당 순서의 문자를 리턴하면 된다.
//테스트 코드
abcde.length //5출력
5/2 //2.5출력
var getTextLength = function(str) {
charAt(math.round((str.length/2)))
var len = 0;
for (var i = 0; i < str.length; i++) {
if (escape(str.charAt(i)).length == 6) {
len++;
}
len++;
}
return len; }
var str = 'abcde'
str.length//5출력
Math.round(str.length/2) //3출력
//str.charAt(Math.round(str.length/2)) //d 출력...0번째가 곧 첫번째 문자이니 Math.round로 반올림이 아닌 버림을 해야한다.
str.charAt(Math.floor(str.length/2))//c 출력! Math.floor로 str의 문자 수인 5를 반으로 나눠 2.5가 나왔을 때, 버림해 2번째 문자(01234중) 출력
//짝수일때는 두 글자 모두 출력이 되어야 한다.
var str2 = 'quer'
str.length//2출력
//결국, 조건문으로 짝수와 홀수 일 때를 직접 지정해주어야겠다.
//홀수 일때
If (str.length/2!==2){
str.charAt(Math.floor(str.length/2))
//짝수일때
else if (str.length===2
입력된 문자 수를 반으로 나눈 후 , math.round함수로 반올림해 해당 숫자 순서의 글자를 반환하면 될 것 같다.
결국 조건문으로 짝수일때와 홀수일때를 나눠야할것같은데, 그러려면 나눗셈의 나머지를 구하는 연산자를 사용해야할것같다.(나머지가 0일때와 아닐때)
//짝수일 때
if(str.length%2===0){
str.charAt(str.length/2-1)
str.charAt(str.length/2)
// 홀수일 때
else{str.charAt(Math.floor(str.length/2))
function solution(s) {
if(s.length%2===0){
var answer = s.charAt(s.length/2-1)
var answer2 = s.charAt(s.length/2)
return [answer,answer2]
}
else if(s.length%2!==0){
var answer = s.charAt(Math.floor(s.length/2))
return answer;
}
}
자바스크립트에서 여러값을 리턴해야하는데 어떻게해야하죠?
짝수일 경우에는 s.charAt(s.length/2-1), s.charAt(s.length/2); 두가지 경우의 값을 모두 한번에 리턴해야 했는데, 한번 리턴하고나면 해당 리턴문 아래로는 실행이 되지 않기 때문이다. 해당 글을 참고해 배열 형식으로 리턴했다.
이런..... 함께 출력해야 하나보다.
[javascript] 문자열 자르기 (split, substring, substr)
substr()
substr(x,y) : x번째 문자부터 y길이만큼 문자 가져오기
substring : (x,y) x번째 부터 y번째까지 문자 가져오기
function solution(s) {
if(s.length%2===0){
var answer = s.substr(s.length/2-1,2)
return answer;
}
else if(s.length%2!==0){
var answer = s.charAt(Math.floor(s.length/2))
return answer;
}
}
통과!!
이렇게 간결한 풀이도 있었다....
[javascript] 글자수 체크, 문자열 길이 구하기(한글 포함) [펌]
var getTextLength = function(str) {
var len = 0;
for (var i = 0; i < str.length; i++) {
if (escape(str.charAt(i)).length == 6) {
len++;
}
len++;
}
return len; }
[charAt - 생활코딩](https://opentutorials.org/course/50/86)
charAt은 index로 주어진 값에 해당하는 문자를 리턴한다.
//출처 블로그에 나온 예시
var stringName = 'coding everybody';
alert(stringName.charAt(0)); // c
[자바스크립트 escape(), encodeURI(), encodeURIComponent() 차이](https://baver.zetacode.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-escape-encodeURI-encodeURIComponent-%EC%B0%A8%EC%9D%B4)
대부분의 문자를 유니코드 형식으로 인코딩하는 함수이다.