如何使用javascript获取数组中动态JSON对象的索引

如何使用javascript获取数组中动态JSON对象的索引,javascript,node.js,json,Javascript,Node.js,Json,我想定义一个函数来查找数组中JSON对象的索引。JSON对象是动态的。这里的对象键/属性在JSON中不是常量 如何在数组中查找匹配对象(所有键和值)的索引 例如: let obj={name:'Bill', phone:'8562456871', email:'bill@email.com'}; let arrayObj=[{street:'wardcircle', city:'Brentwood'},{name:'wan',email:'wan@test.com' },{name:'bill'

我想定义一个函数来查找数组中JSON对象的索引。JSON对象是动态的。这里的对象键/属性在JSON中不是常量

如何在数组中查找匹配对象(所有键和值)的索引

例如:

let obj={name:'Bill', phone:'8562456871', email:'bill@email.com'};
let arrayObj=[{street:'wardcircle', city:'Brentwood'},{name:'wan',email:'wan@test.com' },{name:'bill', phone:'8562456871', email:'bill@email.com'}];
let indx=getIndex(obj,arrayObj); // expected result is 2
我定义了这样的函数,但它不适用于所有动态属性和值:

getIndex(obj,arrayObj){
 Object.keys(obj),forEach((key,index)=>{
 return arrayObject.findIndex(x=>x[key]==obj[key]);// Here I am unable to add AND condition for other key& values.
 });
}

首先放置
.findIndex
,并在其中检查
对象的每个
键是否匹配

请注意,当前对象有
名称:'Bill'
,但数组有
名称:'Bill'
-值应该匹配,区分大小写很重要(除非您想忽略它,在这种情况下,您必须先对两个值调用
toLowerCase()

让obj={
姓名:'比尔',
电话:8562456871,
电邮:'bill@email.com'
};
设arrayObj=[{
街道:“沃德圈”,
城市:“布伦特伍德”
}, {
姓名:‘万’,
电邮:'wan@test.com'
}, {
姓名:'比尔',
电话:8562456871,
电邮:'bill@email.com'
}];
常量getIndex=(findObj,数组)=>(
array.findIndex(obj=>(
Object.entries(findObj).every([key,val])=>obj[key]==val)
))
);

log(getIndex(obj,arrayObj))
Comma而不是句点,
return
forEach
内部,在纯函数中,它什么也不做,在
forEach
外部不返回。请显示真实的代码。有没有否决投票的原因?我尝试了这些对象和数组的代码,但结果不正确。有什么想法吗
let obj={“街道”:“10651科沃德米尔路”,“城市”:“诺克斯维尔”,“州”:“TN”,“邮政”:“37931”}
let arrayObj=[{“国家”:“美国”,“默认”:假,“活动”:真,“街道”:“10651科沃德米尔路”,“城市”:“诺克斯维尔”,“州”:“TN”,“邮政”:“37931”}]
插入该代码会给我一个0的结果。没错,对吧?对象位于数组中的第0个索引处