【freecodecamp学习笔记】where do I belong

一 题目

Return the lowest index at which a value (second argument) should be inserted into an array (first argument) once it has been sorted. The returned value should be a number.

二 代码

function getIndexToIns(arr, num) {
  arr.push(num);
  arr.sort(function(a,b){
    return a-b;
  });
  return arr.indexOf(num);
}

getIndexToIns([40, 60], 50);

三 通过本题的收获

  • 对方法的灵活运用上:
    通过查阅文档可知,Array.prototype.sort()
    sort()默认的排序方式是按照unicode的位点进行排序。也就是说,由于“1”排在“2”之前,所以 10 会排在 2之前,这显然不符合要求,因此我们需要对sort()规则进行定义。
arr.sort(function(a,b){
    return a-b;
  });
  • 思维方式上:
    一开始我是走了一点弯路的。因为我最初的想法是先排序,再判断新来的元素应该插入到哪个位置以及找出这个元素下标。
    我的最初想法有以下几个问题:
    • 将简单的问题复杂化。直接随便插然后排序总要比先排好序再挨个遍历快呀。
    • 思维还没有从面向过程到面向对象完全转变过来。
  • 一点给自己的小tips:借助这道题,更进一步熟悉 sort(),indexOf()方法的运用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值