Javascript 在对象中搜索对象并获取密钥

Javascript 在对象中搜索对象并获取密钥,javascript,object,search,Javascript,Object,Search,我有一个如下所示的对象路由器。假设我有另一个var x=“/podcast”,我想找到这个变量x将驻留的键。例如,在本例中,我希望返回值“M2” 如何搜索此对象路由器及其子对象以返回相应的密钥 谢谢 var router = { M1: { url: "/", description: "", title: "", image: "", }, M2: { url: "/podcast", description: "", tit

我有一个如下所示的对象路由器。假设我有另一个
var x=“/podcast”
,我想找到这个变量x将驻留的键。例如,在本例中,我希望返回值“M2”

如何搜索此对象路由器及其子对象以返回相应的密钥

谢谢

var router = {
  M1: {
    url: "/",
    description: "",
    title: "",
    image: "",
  },
  M2: {
    url: "/podcast",
    description: "",
    title: "",
    image: "",
  },
  M3: {
    url: "/about",
    description: "",
    title: "",
    image: "",
  },
};
您可以使用获取对象键数组,下面是一个工作片段:

const search='/podcast';
常数路由器={
M1:{
网址:“/”,
说明:“,
标题:“,
图像:“
},
M2:{
网址:“/podcast”,
说明:“,
标题:“,
图像:“
},
M3:{
url:“/关于”,
说明:“,
标题:“,
图像:“
}
};
const foundElement=Object.keys(router).filter((el)=>router[el].url==search);
console.log(foundElement[0])您可以使用来获取对象键数组,下面是一个工作片段:

const search='/podcast';
常数路由器={
M1:{
网址:“/”,
说明:“,
标题:“,
图像:“
},
M2:{
网址:“/podcast”,
说明:“,
标题:“,
图像:“
},
M3:{
url:“/关于”,
说明:“,
标题:“,
图像:“
}
};
const foundElement=Object.keys(router).filter((el)=>router[el].url==search);
console.log(foundElement[0])
  • 要获取密钥,请使用
    Object.keys(Object)
  • 要搜索
    ,可以使用
    filter()
    find()
  • 要应用您在
    过滤器
    查找
    中定义的
    回调
    函数的条件
在我的例子中,我使用了
find
函数:

const foundElement = (router, searchableValue) => {
  const founded = Object.keys(router).find(
    (value) => router[value].url === searchableValue
  );
  return founded === undefined ? "Key not found" : founded;
};

const searchableValue = "/podcast";
console.log(foundElement(router, searchableValue));
  • 要获取密钥,请使用
    Object.keys(Object)
  • 要搜索
    ,可以使用
    filter()
    find()
  • 要应用您在
    过滤器
    查找
    中定义的
    回调
    函数的条件
在我的例子中,我使用了
find
函数:

const foundElement = (router, searchableValue) => {
  const founded = Object.keys(router).find(
    (value) => router[value].url === searchableValue
  );
  return founded === undefined ? "Key not found" : founded;
};

const searchableValue = "/podcast";
console.log(foundElement(router, searchableValue));

el变量是什么?或者该部分是如何工作的?
filter()
方法使用回调函数来过滤数组元素,
el
是由
Object.keys()
生成的单个元素。如果您想更深入地了解这些函数,我已链接了这些函数的文档。很高兴提供帮助!:)el变量是什么?或者该部分是如何工作的?
filter()
方法使用回调函数来过滤数组元素,
el
是由
Object.keys()
生成的单个元素。如果您想更深入地了解这些函数,我已链接了这些函数的文档。很高兴提供帮助!:)您接受具有不同键的冗余值还是只接受第一个找到的值?您接受具有不同键的冗余值还是只接受第一个找到的值?