iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >JS中如何查找数字在数组中的索引位置
  • 334
分享到

JS中如何查找数字在数组中的索引位置

2024-04-02 19:04:59 334人浏览 独家记忆
摘要

这篇文章主要为大家展示了“js中如何查找数字在数组中的索引位置”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS中如何查找数字在数组中的索引位置”这篇文章吧。算

这篇文章主要为大家展示了“js中如何查找数字在数组中的索引位置”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS中如何查找数字在数组中的索引位置”这篇文章吧。

算法说明

将值(第二个参数)插入到数组(第一个参数)中,并返回其在排序后的数组中的最低索引。返回的值应该是一个数字。
例如 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)。

function getIndexToIns(arr, num) {
 return num;
}

getIndexToIns([40, 60], 50);

算法题原题

测试用例

  • getIndexToIns([10, 20, 30, 40, 50], 35) 应该返回一个数字 3。

  • getIndexToIns([10, 20, 30, 40, 50], 30) 应该返回一个数字 2.

  • getIndexToIns([40, 60], 50) 应该返回一个数字 1.

  • getIndexToIns([3, 10, 5], 3) 应该返回一个数字 0.

  • getIndexToIns([5, 3, 20, 3], 5) 应该返回一个数字 2.

  • getIndexToIns([2, 20, 10], 19) 应该返回一个数字 2.

  • getIndexToIns([2, 5, 10], 15) 应该返回一个数字 3.

  • getIndexToIns([], 1) 应该返回一个数字 0.

解决方案#1:.sort(),. indexOf()

PEDAC

理解问题:有两个输入:一个数组和一个数字。我们的目标是将输入的数字在输入数组后中排序后,再返回它的索引。
示例/测试用例:我们不知道输入的数组是以哪种方式排序的,但是提供的测试用例清楚地表明,输入的数组应该从小到大进行排序。

请注意,在最后一个测试用例中存在边界问题,其中输入数组是一个空数组。

数据结构:由于我们最终将会返回索引,因此应该坚持使用数组。

我们将会用一个名为 .indexOf() 的方法:

.indexOf() 返回元素在数组中出现的第一个索引,如果元素根本不存在则返回 -1。例如:

let food = ['pizza', 'ice cream', 'chips', 'hot dog', 'cake']
food.indexOf('chips')
// returns 2
food.indexOf('spaghetti')
// returns -1

我们将使用 .concat() 而不是 .push()。为什么呢?因为当使用 .push() 向数组添加元素时,它会返回新数组的长度。而使用 .concat() 向数组添加元素时,它会返回新数组本身。例如:

let array = [4, 10, 20, 37, 45]
array.push(98)
// returns 6
array.concat(98)
// returns [4, 10, 20, 37, 45, 98]

算法:

  1. 将num 插入 arr。

  2. 将 arr 进行升序排序。

  3. 返回 num 的索引。

代码:

function getIndexToIns(arr, num) {
 // Insert num into arr, creating a new array.
  let newArray = arr.concat(num)
 //    [40, 60].concat(50)
 //    [40, 60, 50]

 // Sort the new array from least to greatest.
  newArray.sort((a, b) => a - b)
 // [40, 60, 50].sort((a, b) => a - b)
 // [40, 50, 60]

 // Return the index of num which is now
 // in the correct place in the new array.
  return newArray.indexOf(num);
 // return [40, 50, 60].indexOf(50)
 // 1
}

getIndexToIns([40, 60], 50);

去掉局部变量和注释后的代码:

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

getIndexToIns([40, 60], 50);

解决方案#2:.sort(),.findIndex()

PEDAC

理解问题:有两个输入:一个数组和一个数字。我们的目标是将输入的数字在输入数组后中排序后,再返回它的索引。
示例/测试用例:我们不知道输入的数组是以哪种方式排序的,但是提供的测试用例清楚地表明,输入的数组应该从小到大进行排序。

这个解决方案需要考虑两个边界情况:

  • 如果输入数组为空,则我们需要返回 0,因为 num 将是该数组中的唯一元素,所以它在索引为 0 的位置。

  • 如果 num 的位置处于升序排序后的 arr 的末尾,那么我们需要返回 arr 的长度。

数据结构:由于我们最终将会返回索引,因此应该坚持使用数组。

让我们看看.findIndex() 并了解它将如何帮助解决这一挑战:

.findIndex() 返回数组中第一个满足条件的元素索引。否则它将返回 -1,这表示没有元素通过测试。例如:

let numbers = [3, 17, 94, 15, 20]
numbers.findIndex((currentNum) => currentNum % 2 == 0)
// returns 2
numbers.findIndex((currentNum) => currentNum > 100)
// returns -1

这对我们很有用,因为我们可以用 .findIndex() 将输入 num 与输入 arr 中的每个数字进行比较,并找出它从最小到最大的顺序。

算法:

  1. 如果 arr 是一个空数组,则返回 0。

  2. 如果 num 处于排序后数组的末尾,则返回 arr 的长度。

  3. 否则,返回索引 num。

代码:

function getIndexToIns(arr, num) {
 // Sort arr from least to greatest.
 let sortedArray = arr.sort((a, b) => a - b)
 //     [40, 60].sort((a, b) => a - b)
 //     [40, 60]

 // Compare num to each number in sortedArray
 // and find the index where num is less than or equal to 
 // a number in sortedArray.
 let index = sortedArray.findIndex((currentNum) => num <= currentNum)
 //   [40, 60].findIndex(40 => 50 <= 40) --> falsy
 //   [40, 60].findIndex(60 => 50 <= 60) --> truthy
 //   returns 1 because num would fit like so [40, 50, 60]

 // Return the correct index of num.
 // If num belongs at the end of sortedArray or if arr is empty 
 // return the length of arr.
 return index === -1 ? arr.length : index
}

getIndexToIns([40, 60], 50);

去掉局部变量和注释的代码:

function getIndexToIns(arr, num) {
 let index = arr.sort((a, b) => a - b).findIndex((currentNum) => num <= currentNum)
 return index === -1 ? arr.length : index
}

getIndexToIns([40, 60], 50);

以上是“JS中如何查找数字在数组中的索引位置”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网html频道!

--结束END--

本文标题: JS中如何查找数字在数组中的索引位置

本文链接: https://www.lsjlt.com/news/74814.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS中如何查找数字在数组中的索引位置
    这篇文章主要为大家展示了“JS中如何查找数字在数组中的索引位置”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS中如何查找数字在数组中的索引位置”这篇文章吧。算...
    99+
    2022-10-19
  • Java数组中如何删除scores数组索引index位置的值
    Java数组中如何删除scores数组索引index位置的值,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。import java.util.Scanner;publi...
    99+
    2023-06-02
  • Java 查询 List 中存在的数据在集合中的索引位置
    在 Java 开发中,我们经常需要查询某些数据在 List 集合中的索引位置。如果我们使用传统的方式,比如逐条查询或者使用循环遍历,可能会造成时间复杂度较高的问题。本文将介绍如何使用 Java 优雅地查询 List 集合中存在的数据在集合中...
    99+
    2023-09-25
    java list windows
  • numpy如何获取array中数组元素的索引位置
    目录numpy - 获取array中数组元素的索引1. 函数原型2. 应用2.1 一维数组2. 2 二维数组numpy - 获取array中数组元素的索引 <div class...
    99+
    2023-01-18
    numpy array数组元素索引位置 numpy array索引 numpy数组索引
  • 如何在redis数据库中查找key在内存中的位置
    这篇文章主要介绍“如何在redis数据库中查找key在内存中的位置”,在日常操作中,相信很多人在如何在redis数据库中查找key在内存中的位置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2022-10-18
  • JS如何查找数组中重复元素
    小编给大家分享一下JS如何查找数组中重复元素,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:JS的数据类型有一个数组。今...
    99+
    2022-10-19
  • 使用C#中的Array.IndexOf函数查找数组中某个元素的索引
    使用C#中的Array.IndexOf函数查找数组中某个元素的索引在C#程序中,当我们需要查找数组中某个元素的索引时,可以使用Array.IndexOf函数。Array.IndexOf函数会在指定的数组范围内查找指定的元素,并返回其第一次出...
    99+
    2023-11-18
    C# 查找 ArrayIndexOf
  • 如何利用js查找数组中指定元素并返回该元素的所有索引
    这篇文章给大家分享的是有关如何利用js查找数组中指定元素并返回该元素的所有索引的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。示例代码//在数组中查找所有出现的x,并返回一个包含匹...
    99+
    2022-10-19
  • Java和C++如何在排序数组中查找数字出现的次数
    这篇文章主要介绍“Java和C++如何在排序数组中查找数字出现的次数”,在日常操作中,相信很多人在Java和C++如何在排序数组中查找数字出现的次数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java和C+...
    99+
    2023-06-21
  • python 如何在list中找Topk的数值和索引
    需求: 对于一个python list 或者numpy数组,我需要找到这个list中最大的K个数及其对应的下标。 解决方式: 可以构造字典通过排序解决,不过代码量较多。 使用heapq库,可以直接获取最大值的下标...
    99+
    2022-06-02
    python list Topk数值索引
  • 如何在PHP中打包NumPy数组的索引?
    PHP是一种广泛使用的编程语言,它具有很多强大的特性,其中包括能够轻松处理NumPy数组的能力。在本文中,我们将探讨如何在PHP中打包NumPy数组的索引。 NumPy是一种非常流行的Python库,它提供了一个非常高效的多维数组对象,以及...
    99+
    2023-09-04
    打包 numpy 索引
  • 如何使用js查找数组中符合条件的元素
    目录一、利用for循环进行查找二、filter() 方法三、find()方法附:JavaScript查找一个数组中符合某个条件的值,并将符合条件的值存入新的数组总结js查找数组中符合...
    99+
    2023-05-14
    js数组中查找指定元素 js查找数组符合条件的元素是什么 js数组获取指定元素
  • php如何查找数组中有几个字符串
    这篇文章主要介绍了php如何查找数组中有几个字符串的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何查找数组中有几个字符串文章都会有所收获,下面我们一起来看看吧。方法:1、定义一个计数器变量并赋值0;2、...
    99+
    2023-06-30
  • 在字符串中找到第一个出现的任何数字的位置(php)
    在PHP中,可以使用正则表达式来找到字符串中第一个出现的任何数字的位置。可以使用preg_match函数来实现。下面是一个示例代码:...
    99+
    2023-09-17
    php
  • 如何在Python中高效地索引NumPy数组?
    NumPy是Python中最常用的科学计算库之一,它提供了高效的数组操作和数值计算工具。其中,数组索引是NumPy中最常用的操作之一。本篇文章将介绍如何在Python中高效地索引NumPy数组,并提供一些演示代码。 索引NumPy数组的...
    99+
    2023-08-04
    numy 索引 打包
  • C++如何实现在有序数组中查找元素的第一个和最后一个位置
    这篇文章主要讲解了“C++如何实现在有序数组中查找元素的第一个和最后一个位置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++如何实现在有序数组中查找元素的第一个和最后一个位置”吧!Fin...
    99+
    2023-06-20
  • js如何检查数组中的假值
    这篇文章给大家分享的是有关js如何检查数组中的假值的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。检查数组中的假值大家应该都用过数组方法:filter、some、every,这些方法可以配合 Boolean 方法来...
    99+
    2023-06-27
  • JavaScript如何避免数组中的负数索引
    这篇文章主要介绍了JavaScript如何避免数组中的负数索引,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。避免数组中的负数索引(negat...
    99+
    2022-10-19
  • 如何在 Go 中实现数组的排序和查找?
    在 Go 语言中,数组是一种基本的数据类型,它可以存储一组相同类型的数据。在实际编程中,我们经常需要对数组进行排序和查找操作,以便更好地处理数据。本文将介绍如何在 Go 中实现数组的排序和查找。 一、数组的排序 在 Go 中,我们可以使用内...
    99+
    2023-08-18
    开发技术 数组 关键字
  • php如何获取数值在数组中的哪个位置
    这篇“php如何获取数值在数组中的哪个位置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何获取数值在数组中的哪个位置...
    99+
    2023-06-30
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作