为什么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/
答案 0 :(得分:13)
.splice
是一个函数,它应该像excludedDepartmentsList.splice(position, 1)
而不是excludedDepartmentsList.splice[position, 1]
一样调用。请注意,括号已从[]
更改为()
。
使用下面的()
,它应该返回5
excludedDepartmentsList.splice(position, 1)
固定小提琴: http://jsfiddle.net/PnVEb/1/
答案 1 :(得分:3)
[]
不等于()
var q = excludedDepartmentsList.splice[position, 1];
^ ^
答案 2 :(得分:2)
你的语法有点不对劲。您为拼接功能键入[]
但它应该是()
。
[]
用于大多数编程语言的数组,()
用于函数/方法。
此外,您必须返回q
if (position > -1) {
var q = excludedDepartmentsList.splice(position, 1);
return q;
}
答案 3 :(得分:1)
在splice方法中使用man(),而不是[]