在数组中找到一个元素的下标,找不到返回-1

在javascript中可以这样写:

var a = ['a','b','c','d']
console.log(a.indexOf('c')) // 2

* index.go


import ("fmt""strings"
)type CompareFunc func(interface{}, interface{}) intfunc indexOf(a []interface{}, e interface{}, cmp CompareFunc) int {n := len(a)var i int = 0;for ; i < n; i++ {if cmp(e, a[i]) == 0 {return i;}}return -1;
}func main() {as := []string{"apple", "banana", "lime", "橘子", "orange", "橙子", "pineapple", "vine"}// convert []string to []interfaceai := make([]interface{}, len(as))for i, v := range as {ai[i] = v}// Find index of  "orange" in arrayfmt.Printf("orange index=%d\n", indexOf(ai, "橙子", func (a interface{}, b interface{}) int {s1 := a.(string)s2 := b.(string)return strings.Compare(s1, s2)}));
}

* test:

$ go run index.go
orange index=5

橙子 所在数组元素下标为5

golang interface{} 接口用法示例

golang 实现js 数组 indexOf函数 根据元素找到数组下标相关推荐

  1. C语言:编写一个函数,计算二维数组中的最大元素,数组以指针的方式传递

    /*编写一个函数,计算二维数组中的最大元素,数组以指针的方式传递*/ #include<stdio.h> #define N 4 #define M 3 int findmax(int ( ...

  2. C语言多维数组做函数参数会退化,数组做函数参数退化问题

    一.数组做函数参数退化问题 数组做函数参数时,会退化为指针. 1.把数组的内存首地址和数组的有效长度传入函数. 2.实参数组和函数参数数组的数据类型不一样.形参中的数组,编译器会把它当做一个指针处理, ...

  3. JS 数组添加元素、删除元素、数组去重

    文章目录 一.往数组中添加元素 1.array.push() 2.array.unshift() 3.array.splice() 4.扩展运算符 5.array.concat() 二.删除数组中某个 ...

  4. 利用js写一个函数,实现翻转任意数组。 写一个函数,实现对数字数组的排序。

    1.写一个函数,实现翻转任意数组 function reverse(arr) {var newArr = [];for (var i = arr.length - 1; i >= 0; i--) ...

  5. 删除数组中的指定元素或数组对象

    1.删除数组中的某个指定元素 1)首先获取元素下标,用indexOf()函数找到他的位置index,如果没有找到这个元素那么index将会等于-1:如下为找到元素2的下标 var array = [1 ...

  6. PHP中常用的定义数组的函数是,php常用数组函数总结

    php常用数组函数总结 博主:renpengddxx 发表时间:2017-02-19 13:15:37 浏览量:151 1.array_values() 传入给定数组,返回一个给定数组中所有值的数组, ...

  7. php的数组排列函数,PHP下对数组进行排序的函数

    经常,开发人员发现在PHP中使用这种数据结构对值或者数组元素进行排序非常有用.PHP提供了一些适合多种数组的排序函数,这些函数允许你在数组内部对元素进行排列,也允许用很多不同的方法对它们进行重新排序. ...

  8. c语言数组与函数,C语言的数组与函数

    数组作为函数形参 // 1. 形参是一个指针 void myfunction(int *param) { } // 2. 形参是一个已定义大小的数组 void myfunction(int param ...

  9. php根据键值去除数组中的某个元素_php数组删除元素 删除指定键值元素

    这个属于PHP操作数组的基本应用,但是小应用有大用途,而且一不留心操作错了,还可能给你造出意想不到的bug. 最近写程序的时候要拼装一个检索数组,要求每个栏目的检索条件还不一样,于是乎将获取到的检索条 ...

最新文章

  1. 数据库设计和管理规范
  2. 关于ShapeDrawable应用的一些介绍(下)
  3. Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法
  4. Linux运维工程师:30道面试题整理
  5. vuex的命名空间有哪些_Python3 命名空间和作用域
  6. 在C#中使用反射的简单例子
  7. windows下用pip安装软件超时解决方案
  8. 读《scikiit-learn机器学习》支持向量机
  9. 如何在Ubuntu系统中使用github
  10. Error:Could not find com.android.tools.build:gradle:2.2.2.
  11. 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之32---BREW PUSH 服务...
  12. 快手新作品监控提醒助手,可无水印下载视频和封面
  13. proteus仿真微型计算机,微机原理与接口技术——基于8086和Proteus仿真(第3版)...
  14. [NOI2014]起床困难综合症
  15. PHP电商网站高并发的秘诀之电商秒杀活动
  16. 3Idiots-2014-Kaggle 比赛源码走读
  17. 在Python里如何切分中文文本句子(分句)、英文文本分句(切分句子)
  18. 三星note10 android q,三星Note10 一款严重被低估的安卓上代次机皇
  19. 机器学习之神经网络图解,生动形象
  20. java自定义maven插件_自定义Maven插件

热门文章

  1. debug : 下载动态url失败的原因之一
  2. EOS开发基础之二:使用cleos命令行客户端操作EOS(钱包wallet基础操作)
  3. SQL UPDATE 语句(更新表中的记录)
  4. 软件需求管理用例方法 pdf_杭州2020年1月45日软件需求设计方法学全程实例剖析公开课(总第262期)...
  5. matlab 误差图,Matlab误差棒增强版
  6. mysql删除多列_MySQL删除单列重复或多列同时重复值并保留一条
  7. 安徽大学计算机技术调剂,安徽大学物质科学与信息技术研究院2019年考研调剂信息公告...
  8. 白底黑字!Android浅色状态栏黑色字体模式
  9. 五岳核心版上线,这份阿里开发手册核心版又将被多少人疯狂转载?
  10. 复杂度控制与“道法自然”