Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我不能将对象添加到数组中?[javascript]_Javascript_Arrays_Object_Firefox Addon - Fatal编程技术网

为什么我不能将对象添加到数组中?[javascript]

为什么我不能将对象添加到数组中?[javascript],javascript,arrays,object,firefox-addon,Javascript,Arrays,Object,Firefox Addon,我正在尝试创建一个firefox插件来管理组中的选项卡 创建对象数组 我知道数组有方括号表示法,而对象有花括号表示法。 对象更像是python字典而不是java对象,因为它们只是一组键值集(我说的对吗?) 这是我写的代码: var groups = []; var groupcounter = groups.length; function addTab(tabs) { for (var tab of tabs) { console.log(tab.url);

我正在尝试创建一个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“调用”了success函数,我会在groups数组中插入一个object元素

控制台上的打印效果很好,我能够在firefox调试工具控制台上看到正确的输出

        console.log(tab.url);   // --> prints tab url
        console.log(tab.title); // --> prints tab title
但在将对象添加到数组时,我总是没有定义(我尝试了很多方法)


问题和想法

  • 可能是范围问题吗?我知道在函数外部声明变量会使其成为全局变量
  • 我想知道是否有可能将物体直接传递给推
  • Javascript对象没有构造函数
您键入的
长度有误。第行的长度必须为
length

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

您键入的
长度
错误。第行的长度必须为
length

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

我猜有一个输入错误
组。长度
应该是
组。长度
我猜有一个输入错误
组。长度
应该是
组。长度
你有一个输入错误
长度
应该是
长度
控制台.log(“groups length=“+groups.lenght”)请更正代码中的拼写长度,然后再试一次提示:不要在问题的开头用一段文字解释你如何形容自己懒惰,没有时间学习。只需关注问题本身和你试图解决的问题。哦,上帝。。。我不敢相信我会那么愚蠢。。。为什么javascript解释器没有告诉我有一个输入错误的单词?@David谢谢你的提示:)你有一个输入错误-
lenght
应该是
length
console.log(“groups length=“+groups.lenght”)请更正代码中的拼写长度,然后再试一次提示:不要在问题的开头用一段文字解释你如何形容自己懒惰,没有时间学习。只需关注问题本身和你试图解决的问题。哦,上帝。。。我不敢相信我会那么愚蠢。。。为什么javascript解释器没有告诉我有一个输入错误的单词?@David谢谢你的提示:)