如果知道对象的属性等同于该对象,该如何确定它的名称?

时间:2018-06-24 20:32:57

标签: javascript object

我正在开发一个JavaScript程序,该程序可以帮助您加密和解密消息。为了使其非常安全,我计划创建一个包含idtext属性的对象。这是一个示例对象:

var object1 = {
    id: "AE309JKL36784AJBCMDH"
    text: "∆∂˙˚∆ƒ˙ø©ˆ´¨¬˚å˙∂©¬˚"
}

比方说,我知道文本等于∆∂˙˚∆ƒ˙ø©ˆ´¨¬˚å˙∂©¬˚。如何确定具有text属性的该值的对象的名称为object1

谢谢。

2 个答案:

答案 0 :(得分:-1)

这取决于const FormData = { field1: "field_1", fieldsGroup1: { field2: "field_2", field3: "field_3" }, field4: "field_4", fieldsGroup2: { field5: "field_5", fieldsGroup3: { field6: "field_6", fieldsGroup4: { field7: "field_7" } } }, field8: "field_8" }; ,在其中声明scope,所以我宁愿使用var(这也适用于this情况):

window

@Dave Newton绝对正确,例如,在这种情况下,此答案将无效:

var object1 = {
  id:  "AE309JKL36784AJBCMDH",
  text: "∆∂˙˚∆ƒ˙ø©ˆ´¨¬˚å˙∂©¬˚"
};

console.log(Object.keys(this).find(k => this[k] && this[k].text && this[k].text === '∆∂˙˚∆ƒ˙ø©ˆ´¨¬˚å˙∂©¬˚'));

其中(function(){ var object1 = { id: "AE309JKL36784AJBCMDH", text: "∆∂˙˚∆ƒ˙ø©ˆ´¨¬˚å˙∂©¬˚" }; console.log(Object.keys(this).find(k => this[k] && this[k].text && this[k].text === '∆∂˙˚∆ƒ˙ø©ˆ´¨¬˚å˙∂©¬˚')); }()) 将调用作用域this

答案 1 :(得分:-2)

Object.keys(window).find((key) => {
    let obj = window[key];
    return obj && typeof obj === "object" && obj.text && obj.id && obj.text === "∆∂˙˚∆ƒ˙ø©ˆ´¨¬˚å˙∂©¬˚";
});