>웹 프론트엔드 >JS 튜토리얼 >코드 전쟁 예제 튜토리얼

코드 전쟁 예제 튜토리얼

零下一度
零下一度원래의
2017-06-23 09:35:331338검색

오늘은 배열에 대한 질문을 계속하겠습니다.

여기서 한 가지 어려운 점은 숫자 정렬에 음수가 있다는 것입니다. sort를 사용하여 정렬하면 오류가 보고됩니다.

그래서 몇 가지 생각과 테스트를 거친 후 내 대답은 다음과 같습니다.

function highAndLow(numbers){  var numArr=[],numArr1=[],numArr2=[];
  numbers.split(' ').map(function(n){      if(n>=0){
          numArr2.push(n);
      }else{
          numArr1.push(n);
      }
  });
  numArr1.sort((a,b)=>b-a);
  numArr2.sort((a,b)=>b-a);
  numArr = numArr2.concat(numArr1);
  numArr.splice(1,numArr.length-2);  return numArr.join(' ')
}

먼저 양수와 음수를 두 그룹으로 나눈 다음 각각 정렬하고 마지막으로 배열을 병합하고 첫 번째와 마지막 숫자를 가져옵니다. 배열, 즉 Can입니다.

방법이 좀 멍청하네요. 하하하, 나는 그 멍청한 새다.

마지막으로 다른 사람이 작성한 코드를 확인하세요.

가장 실용적인 코드는

function highAndLow(numbers){
  numbers = numbers.split(' ').map(Number);  return Math.max.apply(0, numbers) + ' ' + Math.min.apply(0, numbers);
}

수학의 최대 및 최소 방법을 직접 사용하는 것입니다(왜 나는 그걸 생각하지 못했지? 돼지머리, 555...)

내 원래 아이디어에 가장 가까운 또 다른 것이 있습니다.

function highAndLow(numbers){  var arr = numbers.split(' ').sort(function(a, b) { return a - b });  return arr[arr.length -1] + ' ' + arr[0];
}

숫자를 배열로 변환하지 않아서 오류가 발생했기 때문에

function highAndLow(numbers){
  numbers.split(' ').sort((a, b)=> a - b });
  numbers.splice(1,numbers.length-2);  return numbers.join(' ');
}

로 쓴 것뿐입니다(낮음- 레벨 오류)

위 내용은 코드 전쟁 예제 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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