对象属性不会从函数更新

时间:2018-01-26 11:14:50

标签: javascript jquery function object

我有一个全局声明的空对象。内部函数 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;
});

2 个答案:

答案 0 :(得分:0)

你必须使用push方法。多项应存储在数组中而不是存在于对象中

usersBookmarks.user.bookmarks.push( {
        "id": bookmark.id,
        "title": bookmark.title,
        "dateAdded": bookmark.dateAdded
      });

答案 1 :(得分:0)

好的,我已经解决了这个问题。我刚刚在 if 语句

中编写了我需要的函数