JavaScript sort()函数

 ...
 const k = parseInt(nk[1], 10);
 const prices = readLine().split(' ').map(pricesTemp => parseInt(pricesTemp, 10));
 function maximumToys(prices, k) {
    var sum = 0;
    prices.sort(function(a,b) {return a-b;});
    for(var i = 0;i<prices.length;i++){
        if(prices[i] <= k){
            k -= prices[i];
            sum += 1;
        }
    }
    return sum;
}

注意

上面代码第二行是将输入的字符串转成数字存在prices数组当中,当你调用prices.sort()时,不添加参数发现输出的结果还是字符串排序

sort() 方法调用时不管你之前的参数是啥,都会先调用tostring()转型方法给数组的每一项,然后比较得到的字符串

要想得到数字的排列就需要给sort()添加比较函数,这个比较函数是sort()函数自带的,比较函数可以接受两个参数,如果第一个参数应该排在第二个参数之前返回一个负数,相反第一个参数排在第二个参数之后返回一个正数,相等返回0。

arr.sort(function(a,b) {return a-b;}) 返回的就是从小到大的排序

猜你喜欢

转载自blog.csdn.net/u013270347/article/details/80903619