前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >找出数组当中指定元素的位置

找出数组当中指定元素的位置

作者头像
itclanCoder
发布2022-03-31 19:00:06
9130
发布2022-03-31 19:00:06
举报
文章被收录于专栏:itclanCoderitclanCoder

背景

这是一个在面试当中,经常被问到的题目,也是一个常见的搜索算法

示例

代码语言:javascript
复制
var arrs = [8,11,21,-3,67,22,55];
// 8--> 0,11---> 1

01

方式1-使用for循环

http://mpvideo.qpic.cn/0bc3riabyaaaj4akhmzkofrfbcwddsfaahaa.f10002.mp4?dis_k=6eee1d9eac7b107cf53bd48f9db31e9f&dis_t=1648724241&vid=wxv_2304795247329345536&format_id=10002&support_redirect=0&mmversion=false

用给定的值,与原数组中的每个值进行比较,如果相等,那么就返回对应的索引

代码语言:javascript
复制
function findArrIndex(arrs,element) {
    for(var i = 0;i<arrs.length;i++>) {  // 循环遍历数组每一项与指定的元素进行比较
        if(arrs[i] == element) {
            return i;
        }
    }
} 
var arrs = [8,11,21,-3,67,22,55];
console.log(findArrIndex(arrs,67));

02

方式2-使用for..of

http://mpvideo.qpic.cn/0bc3quacgaaaxuaoflzkd5rfbbodeocqaiya.f10002.mp4?dis_k=98db1e5b5cbc85086621c4289a079f6e&dis_t=1648724238&vid=wxv_2304801484024512514&format_id=10002&support_redirect=0&mmversion=false

使用for..of进行遍历,此方法,需要借助一个第三方变量index

代码语言:javascript
复制
function findArrIndex(arr,element) {
   var index = 0; 
   for(var item of arr) {
       if(item == element) {
           return index;
       }
       index++;
   }
} 

var arrs = [8,11,21,-3,67,22,55];
console.log(findArrIndex(arrs,67));

03

方法3-使用forEach

http://mpvideo.qpic.cn/0b2ejaaamaaag4amperkdrrfasgdazeaabqa.f10002.mp4?dis_k=587727cca4703e3fbafe78984687f560&dis_t=1648724235&vid=wxv_2304802671582969858&format_id=10002&support_redirect=0&mmversion=false

for..each没有返回值,但是函数可以设置返回值,同样需要借助一个第三方变量idx

代码语言:javascript
复制
function findArrIndex(arr,element) {
  var idx = 0;  
  arr.forEach((item,index) => {
      if(item == element) {
          idx = index;
      }
  })
  return idx;  
  
}

var arrs = [8,11,21,-3,67,22,55];
console.log(findArrIndex(arrs,55));

04

方法4-使用findIndex

http://mpvideo.qpic.cn/0b2e6maakaaagaamirzkmvrfb46daxzqabia.f10002.mp4?dis_k=e90aa6f3565cab84a728ca7fd7c49c76&dis_t=1648724209&vid=wxv_2304803814363037697&format_id=10002&support_redirect=0&mmversion=false

查找数组中素数的元素的索引(如果不存在,则返回-1)

代码语言:javascript
复制
var arrs = [8,11,21,-3,67,22,55];
var index = arrs.findIndex(function(element) {
    return element == 67
})
console.log(index);  // 4

上面的代码可以封装成一个函数

代码语言:javascript
复制
var arrs = [8,11,21,-3,67,22,55];
function getIndex(arr,num) {
    var index = arr.findIndex(function(element) {
    return element == num
  })
  return index;  
}

console.log(getIndex(arrs,67));  // 4

给定一个元素,然后在与数组当中进行匹配,直到找到符合条件的元素,我们在返回它在数组当中的所处的位置

在进行线性搜索当中,进行了一个简单的for循环遍历数组当中的每一项,在用遍历出来的每一项,和我们传入的元素进行一个匹配,当有相等值的时候,返回它对应的下标,这是线性搜索的一个实现


视频地止

  • https://www.bilibili.com/video/BV13u411Q7tN?spm_id_from=333.999.0.0
  • https://www.bilibili.com/video/BV1wu411Q76n?spm_id_from=333.999.0.0
  • https://www.bilibili.com/video/BV1S34y1b7rp?spm_id_from=333.999.0.0
  • https://www.bilibili.com/video/BV1e44y1M7CU?spm_id_from=333.999.0.0
  • 点赞】随意,您的鼓励将会使我更加的努力,如果喜欢,点个【在看】,或与人【分享】,让我知道您曾今来过
  • 欢迎文章下方【留言】,一起学习探讨,您的评论藏过你读过的书
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 itclanCoder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档