请填充代码,使mySort()能使传入的参数按照从小到大的顺序显示出来。

刚开始刷js题真是不适应啊,这次体会到sort()的香了~

请填充代码,使mySort()能使传入的参数按照从小到大的顺序显示出来。
function mySort() {
   
    var tags = new Array();//使用数组作为参数存储容器
    请补充你的代码
    return tags;//返回已经排序的数组
}

var result = mySort(50,11,16,32,24,99,57,100);/传入参数个数不确定
console.info(result);//显示结果

我的答案:

代码:

function mySort() {
   
  var tags = new Array() //使用数组作为参数存储容器
  for (let i = 0; i < arguments.length; i++) {
   
    tags.push(arguments[i])
  }
  //初始化tags
  tags.sort(function (compare1, compare2) {
   
    return compare1 - compare2
  })
  return tags //返回已经排序的数组
}

var result = mySort(50, 11, 16, 32, 24, 99, 57, 100) //传入参数个数不确定
console.info(result) //显示结果

这里js的arguments是个什么东西?

众所周知,js是一门相当灵活的语言。当我们在js中在调用一个函数的时候,我们经常会给这个函数传递一些参数,js把传入到这个函数的全部参数存储在一个叫做arguments的东西里面,那么这到底是什么东西?

在js中万物皆对象,甚至数组字符串函数都是对象。所以这个叫做arguments的东西也是个对象,而且是一个特殊的对象,它的属性名是按照传入参数的序列来的,第1个参数的属性名是’0’,第2个参数的属性名是’1’,以此类推,并且它还有length属性,存储的是当前传入函数参数的个数,很多时候我们把这种对象叫做类数组对象。类数组对象和数组都是对象这个妈生的,但是数组是大哥比类数组对象多了很多其他的玩具(方法),类数组对象只是长得很像数组的弟弟而已。

function showargs() {
   
	console.log( arguments );
}
showargs(1,2,3,4,5);

这里我们可以看到arguments对象将我传入的五个参数以数组的形式保存在里面,还有保存了我传入函数的实参的个数(length)。而且我们可以看到arguments对象的 __ proto __ 是指向object的,这也说明了他是个类数组对象,而不是一个数组。

有了这个对象我们以后写函数的时候,就不用给所有的形参指定参数名,然后通过参数名的方式获取参数了,我们可以直接使用arguments对象来获取实参,这样是不是方便了很多呢。

节选自:js的arguments详解