当前位置: 首页 > 知识库问答 >
问题:

如何在javascript〔duplicate〕中查找对象的索引

颛孙嘉石
2023-03-14

我有一个对象数组,当我使用indexOf时,我想在其中找到所选对象的索引,我得到的值为-1,任何人都可以告诉我如何在javascript中找到对象的indexOf

var a = [{id:2322,location:"Erode",mobile_no:"123456789",name:"andhr",type:"Farmer"}, {id:2323,location:"Coimbatore",mobile_no:"123456789",name:"andhraK",type:"Farmer"}, {id:2324,location:"Erode",mobile_no:"123456789",name:"andhra",type:"Farmer"}];

a.indexOf({id:2322,location:"Erode",mobile_no:"123456789",name:"andhra",type:"Farmer"});

共有1个答案

阮星火
2023-03-14

这是因为它们不一样。

每个对象都有自己的内存地址。

address 1: {id:2322,location:"Erode",mobile_no:"123456789",name:"andhr",type:"Farmer"}, 
address 2: {id:2323,location:"Coimbatore",mobile_no:"123456789",name:"andhraK",type:"Farmer"}, 
address 3: {id:2324,location:"Erode",mobile_no:"123456789",name:"andhra",type:"Farmer"}

然后在数组中存储如下:

var a = [(point to address 1), (point to address 2), (point to address 3)]

当你在找你正在做的东西的时候

address 4: {id:2322,location:"Erode",mobile_no:"123456789",name:"andhra",type:"Farmer"}
a.indexOf((point to address 4));

您需要做的是存储您自己对这些对象的引用:

var A = {id:2322,location:"Erode",mobile_no:"123456789",name:"andhr",type:"Farmer"}; 
var B = {id:2323,location:"Coimbatore",mobile_no:"123456789",name:"andhraK",type:"Farmer"};
var C = {id:2324,location:"Erode",mobile_no:"123456789",name:"andhra",type:"Farmer"}

var arr = [A, B, C];
console.log(arr.indexOf(B));
 类似资料:
  • 问题内容: 存在一个包含许多对象的数组。通过属性在此数组中查找一个或多个对象所必需。 输入obj: 输出结果:(以值4搜索“开始”) 问题答案: _findItemByValue(Obj,“开始”,4); 与除IE6,IE7,IE8以外的所有版本兼容,但存在polyfill。

  • 问题内容: 我有一个数组: 我无法更改数组的结构。我正在传递ID为,我想获取数组中的该对象。 如何在JavaScript或jQuery中做到这一点? 问题答案: 使用方法: 从MDN: 如果数组中的元素满足提供的测试功能,则该方法返回数组中的第一个值。否则返回。 如果要查找其 索引 ,请使用: 从MDN: 该方法返回满足提供的测试功能的数组中第一个元素的索引。否则返回-1。 如果要获取匹配元素的数

  • 问题内容: 我知道以前也曾问过类似的问题,但是这个问题有些不同。我有一个未命名对象的数组,其中包含一个已命名对象的数组,我需要获取“名称”为“字符串1”的对象。这是一个示例数组。 更新: 我应该早先说过,但是一旦找到它,我想用一个编辑过的对象替换它。 问题答案: 您可以遍历数组并测试该属性:

  • 问题内容: 如何在Java程序中找到堆上的活动对象数? 问题答案: 您可以尝试以下方法: 创建自己的java.lang.Object(复制原始源代码) 计算构造函数中创建的对象(不为数组调用) 将您的类文件的路径添加到引导类路径 请参阅此(旧)文章以获取示例。 使用 JPDA或JMX可能有更好的方法,但是我还没有找到方法…

  • 我有一个ArrayList,从ArrayList的末尾(即使用add(object)方法)以串行方式(即逐个)填充Integer类型的对象。每次我这样做,ArrayList中的其他对象都会左移一个索引。 在我的代码中,我想在ArrayList中找到一个随机对象的索引。我想避免使用indexOf方法,因为我有一个非常大的ArrayList,循环将花费大量时间。有什么解决办法吗?如何在某些数据结构中保

  • 问题内容: 您可以使用Python字典等JavaScript对象。真的吗?对象中键查找的性能如何?是O(1)吗?向对象添加键也是恒定时间(散列)吗? 问题答案: 该V8设计文档暗示查询将至少这快,如果不是更快: 大多数JavaScript引擎使用类似字典的数据结构作为对象属性的存储 -每个属性访问都需要动态查找以解析属性在内存中的位置。这种方法通常使访问JavaScript中的属性比访问诸如Jav