>  기사  >  웹 프론트엔드  >  코드 전쟁 일일 연습

코드 전쟁 일일 연습

巴扎黑
巴扎黑원래의
2017-06-23 13:56:221162검색

지침:

x 간단합니다. 단어 문자열이 주어지면 가장 짧은 단어의 길이를 반환합니다.

문자열은 결코 비어 있지 않으며 다른 데이터 유형을 고려할 필요가 없습니다.

설명에 따르면 ,여기서 비어있는지, 데이터형인지 판단할 필요가 없으므로 문단에 가장 짧은 글꼴의 길이를 자유롭게 적어주세요

처음에는 이렇게 썼습니다:

1 function findShort(s){2   var arr = s.split(' ').map(function(t){return t.length});3   return Math.min.apply(null,arr);4 }

여기서 중요한 것은 ES6 이전 코드 작성 방법을 사용하는 것입니다. 지식 포인트는 4가지입니다:

1, string.split(' ')

Split() 메소드는 문자열을 문자열 배열로 분할하는 데 사용됩니다. 이 방법은 간단하고 이해하기 쉬우므로 자세히 설명하지 않겠습니다.

2, Array.map()

map() 메서드는 새 배열을 생성합니다. 이는 원래 배열의 각 요소에 대해 콜백 함수를 한 번 호출합니다. 콜백을 실행할 때마다 반환 값이 새 배열을 형성합니다. 배열.

참조 링크: 여기를 클릭하세요

3, Math.min()

주어진 값 중 가장 작은 숫자입니다. 매개변수를 숫자 값으로 변환할 수 없는 경우 NaN이 반환됩니다.

참조 링크: 여기를 클릭하세요

3, apply()

기존 함수를 호출할 때 this 개체를 지정할 수 있습니다. this는 이 함수를 호출하는 객체인 현재 객체를 나타냅니다. Apply를 사용하면 새 개체에 메서드를 반복해서 작성할 필요 없이 이 메서드를 한 번 작성한 다음 다른 개체에 상속할 수 있습니다.

참조 링크: 여기를 클릭하세요

나중에 다른 사람들의 솔루션을 참고했는데, 코드워에는 한 줄로 함수를 작성할 수 있는 좋은 사람들이 많습니다.

1 function findShort(s){2   return Math.min(...s.split(' ').map(w=>w.length));3 }

여기 주요 응용 프로그램은 다음과 같습니다. ES6에 대한 두 가지 새로운 지식 포인트. 이전에 ES6를 공부했지만 실제 경험이 없기 때문에 여기서 검토하겠습니다.

1, (...)는 배열의 적용 방법을 대체할 수 있는 확장 연산자입니다. 여기서는 배열을 확장하고 배열을 함수 매개변수로 변환하는 데 사용됩니다.

// ES5的写法Math.min.apply(null, [14, 3, 77])// ES6的写法Math.min(...[14, 3, 77])// 等同于Math.min(14, 3, 77);

참고 링크: 여기를 클릭하세요

2, 화살표 함수(=>)

var f = v => v;//等同于var f = function(v) {  return v;
};//如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。var f = () => 5;// 等同于var f = function () { return 5 };var sum = (num1, num2) => num1 + num2;// 等同于var sum = function(num1, num2) {  return num1 + num2;
};

화살표 함수를 사용하면 표현이 더욱 간결해집니다.

자세한 내용은 여기를 클릭하세요

첨부: codewar - 이 연습의 연습 주소

위 내용은 코드 전쟁 일일 연습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.