arr.splice(开始,直到) - 我做错了什么?

时间:2015-08-22 20:35:19

标签: javascript arrays

这是我的基本设置(当然是javascript):

var bookmark = {
    ...
        deleteBookmark: function(_id) {
            var oldbookmarks = this.readBookmarks();
            var begin = oldbookmarks.indexOf(_id);
            if (begin > -1) {
                var newbookmarks = oldbookmarks.splice(begin, 1);
                localStorageService.set('bookmarks', newbookmarks);
            }
        },
    ...
};

注意:直到今天这种方式都很有效。突然,newbookmarks没有区别,它是一个只包含来自_id的书签ID的数组。

环境:
浏览器:最新Chrome,Firefox
服务器:节点0.12.2通过Express
框架: AngularJS,Yeoman,Angular-Fullstack Generator

1 个答案:

答案 0 :(得分:0)

哦,等等。在写这个问题的过程中,我做了一些研究,发现编写规范的人可能是白痴。这是因为splice方法从数组中返回已删除的元素 - 这意味着它是一个运算符,而不是一个函数。

以上更正的用法是:

var bookmark = {
    ...
        deleteBookmark: function(_id) {
            var oldbookmarks = this.readBookmarks();
            var begin = oldbookmarks.indexOf(_id);
            if (begin > -1) {
                oldbookmarks.splice(begin, 1);
                localStorageService.set('bookmarks', oldbookmarks);
            }
        },
    ...
};