通过 Javascript 获取数组或对象的名称

新手上路,请多包涵

我有一个相当愚蠢但令人困惑的问题。我们怎样才能得到一个存在的数组或对象的名称?

例如:

 thisObject={ first:1, second:2};
thisArray=[1,2,3,4]

我想获取字符串“thisObject”、“thisArray”。

我们怎样才能得到它?

非常感谢。


编辑:

为了更具体。我想做这样的事情: console.log(someFunction(thisObject))

然后它返回

"thisObject"


编辑2:

 const firstArray=[1,2,3]
const secondArray=["a","b"]
const render=(arr)=>arr.map(arrr=>console.log(Object.keys({arr})[0]))
render(firstArray)
render(secondArray)

它会返回

"arr" "arr"

代替

"firstArray" "secondArray"

原文由 trungh13 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 690
2 个回答

实际上 无法在 Javascript 中完成您想做的事情,但是有一个小技巧可以用来记录一个对象的名称,而无需 直接 键入它。它不是特别有用,如果你试图获取函数参数的原始名称,它也不会真正起作用,但你可以这样做:

 console.log(Object.keys({thisObject})[0]);
// "thisObject"

正如我所说,不是特别有用,但如果你能做得更好,我会感到震惊。

原文由 ajxs 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 window 对象访问 thisObjectthisArray

像这样 -

 var thisObject={ first:1, second:2};
var thisArray=[1,2,3,4]

console.log(window.hasOwnProperty("thisObject"));
console.log(window.hasOwnProperty("thisArray"));

console.log(window.thisObject);
console.log(window["thisArray"]);

原文由 Vivek 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题