找出元素在排序后数组中的索引

该文描述了一个JavaScript函数,用于在排序数组中插入一个数值并保持数组有序,函数首先使用.sort()进行排序,然后使用.indexOf()找到插入值的索引。另外,还提供了一种使用for循环寻找插入位置的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目要求

数组(第一个参数)在排序后,将一个值(第二个参数)插入该数组,并使数组保持有序。返回这个新插入元素的最小索引值。 返回值应为一个数字。

例如,getIndexToIns([1,2,3,4], 1.5) 应该返回 1 因为1.5 大于 1(索引为 0)且小于 2(索引为 1)。

同样地,getIndexToIns([20,3,5], 19) 应该返回 2。 因为数组排序后会变成 [3,5,20],而 19 小于 20(索引为 2)且大于 5(索引为 1)。

题目要求可知该函数有两个参数,一个参数为数组,另一个参数为数字,

1.首先我们先使用.push()方法将数字推入到数组当中

function getIndexToIns(arr, num) 
{
arr.push(num);//.push()方法将数字推入到数组当中
arr.sort((a,b)=>a-b);//使用回调函数将数组从小到大进行排序
return arr.indexOf(num);//使用.indexOf()方法检查元素并返回索引位置
}

2.先要用.sort()方法对数组进行排序,再在内部使用回调函数定义排序规则

a-b 是正数,根据规则,b会被移到a的前面

a-b 是负数,根据规则,a会排列到b的前面

3.用.indexOf()检查元素位置是否在元素中存在,存在就返回在数组中的索引位置,不存在就返回-1。

还可以在对数组进行排序后,用for循环去遍历数组直到数组中的值比参数中的数字大,返回当前数组元素的长度即可得到索引值,代码如下:

function getIndexToIns(arr, num) {
  arr.sort((a, b) => a - b);

  for (let i = 0; i < arr.length; i++) {
    if (arr[i] >= num) return i;
  }

  return arr.length;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值