【发布时间】:2014-01-22 04:52:23
【问题描述】:
我有一个对象,其字符串值附加到相同的属性,如果该值存在,我希望使用函数删除该对象。为了实现这一点,我将字符串值放入一个数组中,遍历它们并希望使用 splice() 删除该值。问题是splice() 似乎无法识别数组计数器。即使计数器更高,它也总是删除数组中的第一项。我检查了代码并且循环工作正常。
我在网上没有看到任何建议splice 不能与索引处的变量一起使用。如何让splice 使用计数器来移除相对值?
var obj = {
className: 'open menu next thing'
}
function removeClass(elem, cls) {
var arr = elem.className.split(' ');
for(var i = 0; i < arr.length; i++) {
if(arr[i] == cls) {
alert(arr[i]);
var splCout = arr.splice(arr[i], 1);
alert(splCout);
}
}
var str = arr.join(' ');
alert(str);
}
removeClass(obj, 'next');
【问题讨论】:
-
splice的第一个参数不是一个值,它是一个起始索引。你应该写一些像arr.splice(i, 1); -
啊,我明白我的错误了,谢谢
-
检查我的答案并修复你的代码,考虑这两点。
标签: javascript arrays for-loop splice