Rumah >hujung hadapan web >tutorial js >code war的实例教程

code war的实例教程

零下一度
零下一度asal
2017-06-23 09:35:331330semak imbas

今天又接着来继续做一道有关数组的题:

这里有一个难点是,数字排序里有负数。使用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方法(我怎么就没想到呢?猪脑袋,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(' ');
}

因为没把numbers转换成数组,导致错误(低级错误)

 

Atas ialah kandungan terperinci code war的实例教程. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:CSS中color的使用方法Artikel seterusnya:按位存储的概念及实例