我有一个全局声明的空对象。内部函数 saveBookmarks 我正在尝试向对象添加一些值。但是在函数之外,对象 usersBookmarks 不会保存值。有什么问题以及如何解决这个问题?谢谢
var usersBookmarks = {};
$('#upload').click(function () {
chrome.bookmarks.getTree(function (bookmarks) {
saveBookmarks(bookmarks);
});
var noChildren = false;
function saveBookmarks(bookmarks) {
if (noChildren === false) {
bookmarks.forEach(function (bookmark) {
if (bookmark.children) {
saveBookmarks(bookmark.children);
} else {
noChildren = true;
usersBookmarks.user.bookmarks = {
"id" : bookmark.id,
"title" : bookmark.title,
"dateAdded" : bookmark.dateAdded
};
}
});
}
} //end of saveBookmarks function
document.getElementById('root').innerHTML = usersBookmarks;
});
答案 0 :(得分:0)
你必须使用push方法。多项应存储在数组中而不是存在于对象中
usersBookmarks.user.bookmarks.push( {
"id": bookmark.id,
"title": bookmark.title,
"dateAdded": bookmark.dateAdded
});
答案 1 :(得分:0)
好的,我已经解决了这个问题。我刚刚在 if 语句
中编写了我需要的函数