2

下面代码中为什么splice方法返回undefined并且不移除位置4的元素:

var excludedDepartmentsList = [1, 2, 3, 4, 5, 6];
var currentDepartmentId = 5;

var position = $.inArray(currentDepartmentId, excludedDepartmentsList);

if (position > -1) {
    var q = excludedDepartmentsList.splice[position, 1];
    return;
}

我在这里做了一个测试:http: //jsfiddle.net/PnVEb/

4

4 回答 4

13

.splice是一个函数,它应该被称为 likeexcludedDepartmentsList.splice(position, 1)而不是excludedDepartmentsList.splice[position, 1]。请注意括号从 更改[]()

像下面这样使用()它应该返回5

excludedDepartmentsList.splice(position, 1)

固定小提琴:http: //jsfiddle.net/PnVEb/1/

于 2013-06-07T16:56:35.500 回答
3

[]不等于()

var q = excludedDepartmentsList.splice[position, 1];
                                      ^           ^
于 2013-06-07T16:57:43.317 回答
2

你的语法有点错误。您键入[]拼接功能,但它应该是().

[]用于大多数编程语言的数组,()也用于函数/方法。

你也必须返回q

if (position > -1) {
    var q = excludedDepartmentsList.splice(position, 1);
    return q;
}
于 2013-06-07T16:58:03.000 回答
1

man 在拼接方法中使用 (),而不是 []

于 2013-06-07T17:02:25.873 回答