获取某个数组元素 在 数组中的索引

例如我们有数字:

var arr1 =[‘aa‘,‘bb‘,‘cc‘,‘dd‘,‘ee‘,‘ff‘,‘gg‘,‘hh‘];

var arr2 = [

  {id:1,name:‘lanyan‘},

  {id:2,name:‘wanming‘},

  {id:3,name:‘tingting‘},

  {id:4,name:‘songsong‘}

];

var arr2 = [

  {id:1,name:‘lanyan‘},

  {id:2,name:‘wanming‘},

  {id:3,name:‘tingting‘},

  {id:4,name:‘songsong‘},

  ‘test‘,

  ‘ethos‘

];

一般我们是通过indexOf,findIndex获取数组的索引的

arr1.indexOf(‘bb‘)  //1

arr1.findIndex(function(data) {

  return data == ‘bb‘;

});

//输出索引1

但是如果一个数组里 包含对象,也包含字符串呢,这里有一个函数供参考

let getArrIndex = function(arr, obj) {
    let index = null;
    let key = Object.keys(obj)[0];
    arr.every(function(value, i) {
        if (value[key] === obj[key]) {
            index = i;
            return false;
        }
        return true;
    });
    return index;
};

用法:

var getIndex = getArrIndex(arr2,{id:2,name:‘wanming‘});

//输出:1

时间: 2024-08-06 19:39:35

获取某个数组元素 在 数组中的索引的相关文章

随机获取数组元素 和 数组元素随机排序

<script type="text/javascript"> //随机取得数组中的一个元素 function Rand(){ var arr=[11,22,33,44]; var a=Math.floor(Math.random()*arr.length);//Math.floor(Math.random()); //Math.floor()方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数. //alert(Math.random()*arr.

数组元素在内存中的存储方式

代码: #include <stdio.h> #include <stdlib.h> #define L1 5 #define L2 3 // 数组元素是顺序存储的 int main(void) { int arr1[L1] = { 1, 2, 3, 4, 5, }; // 输出一维数组各个元素的地址 for (size_t i = 0; i < L1; ++i) { printf("%17p", &arr1[i]); } printf("

jQuery根据元素值来删除一个数组元素及数组对象方法

在前提不知道b在这个数组的下标,删除b这个元素  var arrList = ['a','b','c','d'];         arrList.splice(jQuery.inArray('b',arrList),1); alert(arrList); 其中jQuery.inArray('b',arrList)是b这个元素在数组arrList 中的位置 splice(index,1)函数中第一个参数index是要删除元素在数组中的位置,第二个参数是要删除的数量. Array对象的方法有: c

笔试算法题(32):归并算法求逆序对 &amp; 将数组元素转换为数组中剩下的其他元素的乘积

出题:多人按照从低到高排成一个前后队列,如果前面的人比后面的高就认为是一个错误对: 例如:[176,178,180,170,171]中的错误对 为 <176,170>, <176,171>, <178,170>, <178,171>, < 180,170>, <180,171>. 现在要求从一个整数序列中找出所有这样的错误对: 分析: 逆序对(Inversion Pair):在N个可判断大小的数中,逆序对的数量为[0,n(n-1)/2

VB6之多维数组中元素在内存中的排列情况

1 Private Declare Sub RtlMoveMemory Lib "kernel32" (Destination As Any, Source As Any, ByVal Length As Long) 2 3 4 'code by lichmama from cnblogs.com 5 Private Sub Form_Load() 6 Dim a(2) As Byte 7 Dim b(2, 2) As Byte 8 Dim c(2, 2, 2) As Byte 9 1

二维数组元素排序

<script type="text/javascript">//--------------------------1数值排序-------------------------var arr1=[[22,33,44],[1,0,6,2],[33,10],[10,5]];arr1.sort(function(x,y){ return x[1] -y[1];//按照二维数组arr1中每个数组元素(数组)的第二个元素升序排列 });console.log(arr1); //--

acwing_800_数组元素的目标和

800. 数组元素的目标和 题目 提交记录 讨论 题解 给定两个升序排序的有序数组A和B,以及一个目标值x.数组下标从0开始.请你求出满足A[i] + B[j] = x的数对(i, j). 数据保证有唯一解. 输入格式 第一行包含三个整数n,m,x,分别表示A的长度,B的长度以及目标值x. 第二行包含n个整数,表示数组A. 第三行包含m个整数,表示数组B. 输出格式 共一行,包含两个整数 i 和 j. 数据范围 数组长度不超过100000.同一数组内元素各不相同.1≤数组元素≤1091≤数组元素

bash数组和关联数组

1.1.1 数组 数组就是变量阵列,多个变量组合到一块,通过同一个名字进行存取操作.数值是连续的多个独立的内存空间(元素),每个内存空间相当于一个变量.数组元素通过"数组名[索引]"进行引用.索引也称为下标,从0而不是1开始编号. 声明数组:declare -a Array_Name bash的数组支持稀疏格式,所谓的稀疏格式就是,一个数组中的只有两个元素,但这两个元素可以是第一个和第九个,中间的都为空. 1.1.1.1 数组元素赋值 (1) 一次只赋值一个元素 a_name[inde

作业九 二维数组和字符数组的应用

知识点: (1)二维数组的定义形式为: 类型名 数组名 [行长度] [列长度]; (2)引用二维数组的元素要制定两个下标,即行下标和列下标,形式为: 数组名 [行下标] [列下标] (3)行下标的合理取值范围是[0,行长度-1],列下标合理的取值范围是[0,列长度-1]. (4)分行赋初始值,一般形式为: 类型名 数组名 [行长度] [列长度]={{初值表0},-,{初值表k},-}; 然后可把初值表k中的数据一次赋值给第k行的元素. (5) 顺序赋初始值,一般形式为: 类型名 数组名 [行长度