2016-12-05 1 views
0

다음 코드에 slice() wrt를 사용하는 것을 이해하는 데 어려움이 있습니다. 예상 한 결과를 가져 오지 않습니다.JavaScript에서 slice() 사용

var cDate = "11-05-2016"; 
var m = cDate.slice(0,2); 
var d = cDate.slice(3,2); 
var y = cDate.slice(6); 
console.log("Month is " + m); 
console.log("Day is " + d); 
console.log("Year is " + y); 

이 다음과 같은 출력을 제공합니다

Month is 11 
Day is 
Year is 2016 

내가 다른 문자열 slice로했습니다. 그러나 그것을 할 때마다 항상 문자열의 가운데에서 슬라이스 할 때 빈 문자열을 제공합니다. 왜 이런거야?

+5

"endSlice 선택 사항 추출을 끝낼 0부터 시작하는 인덱스. 생략하면 slice()는 문자열의 끝으로 추출하고 음수 인 경우 sourceLength + endSlice로 처리됩니다. 여기서 sourceLength는 문자열 (예 : endSlice가 -3 인 경우 sourceLength - 3으로 처리됨). " –

+0

날이 05로 인쇄되기를 원합니다. 빈 문자열을 반환합니다. – Ammu

+2

두 번째 매개 변수는'substr'에있는 것처럼 slice의 길이가 아닙니다. – epascarello

답변

2

:

인수는 다른 것을 의미

slice() 메서드는 문자열의 섹션을 추출하고 새 문자열을 반환합니다.

슬라이스의 신택스는 다음

str.slice (beginSlice [endSlice])를 endSlice 실제 위치가 문자열 (그리고 하지 것을

참고 beginSlice에서 가져올 문자 수).

예를 들어, 문자열이 3에서 2로 슬라이스 (뒤로 이동하기 때문에) 할 수 없으므로 빈 문자열을 얻습니다.

+0

// endSlice는 문자열의 실제 위치입니다. (처음부터 얼마나 많은 문자를 가져 오지 않았는 지 확인하십시오.) // 감사합니다. 감사합니다! – Ammu

+0

@Ammu가'beginSlice'로 변경되었습니다. :) 감사합니다! – Dekel

2

slicesubstr을 혼동하는 것 같습니다. MDN에서

  • slice(startIndex, endIndex)
  • substr(startIndex, length)

var cDate = "11-05-2016"; 
 
var m = cDate.substr(0,2); // "11" 
 
var d = cDate.substr(3,2); // "05" 
 
var y = cDate.substr(6); // "2016" 
 
console.log("Month is " + m); 
 
console.log("Day is " + d); 
 
console.log("Year is " + y);

+0

감사합니다. 이 작품! – Ammu