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()
生成的单个元素。如果您想更深入地了解这些函数,我已链接了这些函数的文档。很高兴提供帮助!:)您接受具有不同键的冗余值还是只接受第一个找到的值?您接受具有不同键的冗余值还是只接受第一个找到的值?