通过要按顺序获取的键列表获取嵌套键
Get nested keys via a list of keys to get in sequence
下面是我的一些代码:
// "iterable" is a Map
iterable.forEach((definition, schemaKey) => {
let keyToGet = schemaKey.split('.');
});
keyToGet
包含一个嵌套键的列表,我想按排序顺序获得这些键。也就是说,如果我有一个用户对象,
{
profile: {
name: { full: "Cat Man" }
}
}
我想使用['profile', 'name', full]
访问profile.name.full
。是否可以使用此值列表获取值?
您可以执行一个递归函数,如果找到键,该函数将沿对象向下移动,如果到达数组的末尾,则最终返回值。如果未找到密钥,则返回-1:
function getFromArr(obj, arr){
function travelDown(current,index){
if(current.hasOwnProperty(arr[index])){
if(index+1 == arr.length){
return current[arr[index]]
}else{
return travelDown(current[arr[index]], index+1)
}
}else{
return -1;
}
}
return travelDown(obj, 0)
}
var obj ={
profile: {
name: { full: "Cat Man" }
}
}
console.log(getFromArr(obj,["profile", "name", "full"])) // Cat Man
console.log(getFromArr(obj,["profile", "name"])) // {full: "Cat Man"}
console.log(getFromArr(obj,["profile", "name", "nonexistant"])) // -1
相关文章:
- 如何在jquery中获取列表项的最顶端父项的文本
- 根据列表元素的值使用JQuery获取列表元素
- 正在获取列表项位置()
- 如何在委托中获取列表项中元素的内部HTML
- 用javascript从mysql中获取列表变量
- 在 jQuery 的自动完成中获取列表项单击的名称
- Jquery - 如何获取列表项中的元素
- 在 django 中获取列表值
- 在 Vista Gadget 中使用 Javascript 获取列表数据
- 使用 SPServices 从另一个域上的 SharePoint 获取列表项总数
- jQuery:如何获取列表元素的索引
- 获取列表项中当前 ID 的值
- 获取列表项的值并发布到 ajax
- 获取列表中的第一个 DOM 元素
- 获取列表项的文本内容
- 如何在javascript中获取列表中td的值
- $ionicLoading在从Ionic中的Firebase获取列表期间未显示
- Iscroll-Jquery-获取列表项的位置
- 从自动填充的JSON列表中获取列表选项值,并传递给JS函数
- 如何获取列表项'JSON加载的未排序列表中的s id