请教JS对象如何获取属性名?


let color = {
    01: "粉红",
    21: "黄红"
}

请教,如何匹配“粉红”,返回01?


for(let ele in color){
 if(color[ele]==="粉红"){
   console.log(ele)
 }
}

分析: 一个对象存在多个属性,且是唯一的,但对象多个属性的值可能是相同的

let color = { "01": "粉红", "21": "黄红", "25": "粉红" }
// 获取对象中 指定val相应的key
function getObjKey (obj, val) {
    // 相同val的key可能有多个,用数组进行接收
    let keys = []
    Object.keys(obj).forEach(item => {
        if (obj[item] === val) {
           keys.push(item)
        }
    })
    return keys
}

console.log("keys集:", getObjKey(color, '粉红'))

运行结果:

img