在JavaScript中,要按子对象值获取父对象键,可以使用以下方法:
方法一:使用for...in循环遍历父对象的属性,然后通过判断子对象的属性值是否与给定的值相等来获取父对象的键。
function getParentKeyByValue(obj, value) {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
if (obj[key] === value) {
return key;
}
}
}
return null;
}
// 示例用法
var parentObj = {
key1: { subKey: 'value1' },
key2: { subKey: 'value2' },
key3: { subKey: 'value3' }
};
var valueToFind = 'value2';
var parentKey = getParentKeyByValue(parentObj, valueToFind);
console.log(parentKey); // 输出:key2
方法二:使用ES6的Object.entries()
方法将父对象转换为键值对数组,然后使用Array.prototype.find()
方法在数组中查找匹配子对象值的项,最后返回对应的键。
function getParentKeyByValue(obj, value) {
return Object.entries(obj).find(([key, childObj]) => childObj.subKey === value)?.[0] || null;
}
// 示例用法
var parentObj = {
key1: { subKey: 'value1' },
key2: { subKey: 'value2' },
key3: { subKey: 'value3' }
};
var valueToFind = 'value2';
var parentKey = getParentKeyByValue(parentObj, valueToFind);
console.log(parentKey); // 输出:key2
以上两种方法都可以根据子对象的值获取父对象的键。使用这些方法,您可以轻松地在JavaScript中按子对象值获取父对象键。
领取专属 10元无门槛券
手把手带您无忧上云