今天又接著來繼續做一道有關陣列的題:
#這裡有一個困難是,數字排序裡有負數。使用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(' ') }
先將正負數分為兩組,再分別進行排序,最後合併數組,取數組的第一位和最後一位即可。
方法有點笨。哈哈哈,我就是那隻笨鳥了。
最後去查看別人寫的程式碼:
實踐最強的是
function highAndLow(numbers){ numbers = numbers.split(' ').map(Number); return Math.max.apply(0, numbers) + ' ' + Math.min.apply(0, numbers); }
#直接運用了Math的max和min方法(我怎麼就沒想到呢?
##function highAndLow(numbers){ var arr = numbers.split(' ').sort(function(a, b) { return a - b }); return arr[arr.length -1] + ' ' + arr[0]; }
以上是code war的實例教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!