数组排序并找出元素索引
2017-11-11 22:01
148 查看
题目描述:
先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引。
举例:where([1,2,3,4], 1.5) 应该返回 1。因为1.5插入到数组[1,2,3,4]后变成[1,1.5,2,3,4],而1.5对应的索引值就是1。
同理,where([20,3,5], 19) 应该返回 2。因为数组会先排序为 [3,5,20],19插入到数组[3,5,20]后变成[3,5,19,20],而19对应的索引值就是2。
题目分析:
根据题意,需要先对数组中的元素进行升序排列,由于Array.sort()函数默认排序顺序是根据字符串Unicode码点,我们需要先指定一个排序函数让它按某种顺序进行排列,然后用indexOf()方法返回在数组中指定的值的第一个索引。
代码实现:
先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引。
举例:where([1,2,3,4], 1.5) 应该返回 1。因为1.5插入到数组[1,2,3,4]后变成[1,1.5,2,3,4],而1.5对应的索引值就是1。
同理,where([20,3,5], 19) 应该返回 2。因为数组会先排序为 [3,5,20],19插入到数组[3,5,20]后变成[3,5,19,20],而19对应的索引值就是2。
题目分析:
根据题意,需要先对数组中的元素进行升序排列,由于Array.sort()函数默认排序顺序是根据字符串Unicode码点,我们需要先指定一个排序函数让它按某种顺序进行排列,然后用indexOf()方法返回在数组中指定的值的第一个索引。
代码实现:
function where(arr, num) { function compare(a, b){ return a -b; } arr.push(num); arr.sort(compare); return arr.indexOf(num); } where([40, 60], 50);
相关文章推荐
- 【php数组函数序列】之asort() - 对数组的元素值进行升序排序,保持索引关系
- 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次,编写代码找出数组中的某个元素
- 找出Pandas 数组行中的 第二大元素 排序
- 【php数组函数序列】之ksort()- 对数组的元素键名进行升序排序,保持索引关系
- 程序员面试金典: 9.11 排序与查找 11.3找出已排序数组经过旋转后某个元素
- 【php数组函数序列】之krsort()- 对数组的元素键名进行降序排序,保持索引关系
- php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
- 9.11排序与查找(三)——给定一个排序后的数组,包括n个整数,但这个数组已被旋转过多次,找出数组中的某个元素
- C语言 选择排序算法原理和实现 从数组中 找出最小的元素然后交换位置
- php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
- 创建一维数组,长度为20,元素索引值为索引的二倍,奇数为负偶数为正,然后对数组排序
- php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
- php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
- php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
- php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
- 9.11排序与查找(三)——给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素
- 【php数组函数序列】之ksort()- 对数组的元素键名进行升序排序,保持索引关系
- 程序员面试金典——解题总结: 9.17中等难题 17.6给定一个整数数组,编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n - m越小越好,也就是说,找出
- javascript 005 基于原型链实现类 数组去重,排序,根据值删除数组中元素,查某个值在数组中的索引,根据值,判断数组中是否有该值的元素
- 找出两个数组中相同的元素,不排序直接两次循环取出