我正在尝试创建一个firefox插件来管理组中的标签。
创建对象数组
我知道数组具有方括号表示法,并且该对象具有花括号表示法。 对象更像是一个python字典而不是java对象,因为它只是一堆键值集(我是对的吗?)。
这是我写的代码:
var groups = [];
var groupcounter = groups.length;
function addTab(tabs) {
for (var tab of tabs) {
console.log(tab.url);
console.log(tab.title);
groups.push({title: tab.title, url: tab.url});
}
groupcounter = groups.length;
console.log("groups length = "+groups.lenght);
}
function onError(error) {
console.log(`Error: ${error}`);
}
function addToGroup(){
browser.tabs.query({currentWindow: true, active: true}).then(addTab,onError);
}
document.addEventListener("click", (e) => {
if (e.target.textContent === "Add To Group"){
addToGroup();
}
});
我期待每次调用addToGroup时,如果Promise然后“调用”了成功函数,我会将一个对象元素插入到groups数组中。
控制台上的打印工作正常,我可以在firefox调试工具控制台上看到正确的输出。
console.log(tab.url); // --> prints tab url
console.log(tab.title); // --> prints tab title
但是当谈到将对象添加到数组时,我总是未定义(我尝试了很多方法)。
console.log("groups length = "+groups.lenght); //--> prints 'groups length = undefined'
问题和想法
答案 0 :(得分:3)
我猜错误groups.lenght
应为groups.length
答案 1 :(得分:1)
您错误地输入了lenght
。它必须是length
行:
console.log("groups length = "+groups.lenght);