为什么我不能将对象添加到数组中?[javascript]
我正在尝试创建一个firefox插件来管理组中的选项卡 创建对象数组 我知道数组有方括号表示法,而对象有花括号表示法。 对象更像是python字典而不是java对象,因为它们只是一组键值集(我说的对吗?) 这是我写的代码:为什么我不能将对象添加到数组中?[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);
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谢谢你的提示:)