여가 시간에 질문해 보세요.
이 질문은 동일한 인접 요소를 삭제하고 새 배열을 반환한다는 뜻입니다.
여기에서는 Array.filter 방법이 가장 좋습니다. 내 대답은 다음과 같습니다.
var uniqueInOrder=function(iterable){ var arr = typeof(iterable) === 'string' ? iterable.split('') : iterable; var pre = ''; return arr.filter(function(i){if(i === pre){ return false; }else{ pre = i; return true; } }) }
여기서 filter는 원래 배열을 수정하지 않고 새 배열만 반환하며 삭제 기능도 있습니다. false 값을 반환하면 true를 반환하는 값을 유지합니다.
두 번째 대답이 있습니다:
var uniqueInOrder=function(iterable){ var arr = typeof(iterable) === 'string' ? iterable.split('') : iterable; var pre = '',result = []; arr.map(function(i){if(i !== pre){ result.push(pre = i); } }); return result; }
이것은 정규화된 값을 재현하기 위해 또 다른 빈 배열을 사용하는 것입니다.
제출 후 솔루션 영역에서 매우 똑똑한 답변을 보았습니다.
var uniqueInOrder = function (iterable){ return [].filter.call(iterable, (function (a, i) { return iterable[i - 1] !== a })); }
여기서 호출 메소드는 array.filter를 영리하게 호출하여 반복 가능하도록 만드는 데 사용됩니다. 배열 또는 문자열. 연산을 위해 문자열을 배열로 변환하기 위해 열심히 노력할 필요가 없습니다.
그런 다음 그는 필터 반환 값의 특성을 활용하고 각 요소를 이전 요소와 차례로 비교하여 같지 않으면 true를 반환하고 현재 요소를 유지합니다.
이 질문은 비교적 간단합니다.
또 다른 간단한 질문:
매우 간단하므로 답변을 직접 게시하겠습니다:
function average(scores) { var result = 0; scores.map(i=>result+=i); return Math.round(result/scores.length); }
결론 영역을 예시로 보여주는 가장 좋은 방법:
function average(scores) { return Math.round(scores.reduce((x, y) => x+y, 0) / scores.length) }
위 내용은 코드워 일일 연습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!