我正在构建chrome扩展程序,我正在运行以下脚本:
var group = {
'object1': {
option1: '',
option2: ''
},
'object2': {
option1: '',
option2: ''
}
};
chrome.tabs.executeScript({
code: " \
var group_array = [" + Object.keys(group) + "]; \
console.log(group_array[0]); \
"
});
由于某种原因,console.log
返回object1
未定义。我希望console.log
返回group
中第一个对象的名称,因此它应该返回object1
。
我做错了什么?
答案 0 :(得分:1)
我只是测试它。问题是:
"["+['object1','object2']+"]" -> "[object1,object2]"
所以
var group_array = [object1, object2];
如果直接评估字符串,则object1和object2将被视为变量而不是字符串,并且由于没有名为object1和object2的变量,评估失败。
要实现您想要的功能,您可以循环Object.keys(group)数组,并将代码逐个附加到代码,或者您可以直接使用JSON.stringify将结果解析为字符串数组:< / p>
" \
var group_array = " + JSON.stringify(Object.keys(group)) + "; \
console.log(group_array[0]); \
"