为什么我无法将对象添加到数组? [javascript]

Why I am not able to add an object to an array? [javascript]

我正在尝试创建一个 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 然后 "called" 成功函数,我会得到一个对象元素插入到组数组中。

控制台上的打印工作正常,我能够在 firefox 调试工具控制台上看到正确的输出。

        console.log(tab.url);   // --> prints tab url
        console.log(tab.title); // --> prints tab title

但是在将对象添加到数组时,我总是得到undefined(我尝试了很多方法)。

    console.log("groups length = "+groups.lenght); //--> prints 'groups length = undefined'

问题与思考

您输入错误 lenght。它必须是 length 行:

console.log("groups length = "+groups.lenght);

估计打错了groups.lenght应该是groups.length