我一直在尝试创建一个删除功能来从不同的数组中删除项目。我的函数就是这样,它接受数组名称和该数组中项目的索引。
removeItem(itemArray, index){
this.itemArray.splice(index,1);
}
然后像使用它
removeItem('selectedColors',5);
但是this
没有捕获我的变量名。在控制台中,我得到this.itemArray .splice is not a function
我也这样尝试过,我创建了一个itemArray变量,以便可以对其进行分配。好吧,效果不佳。
removeItem(itemArray, index){
this.itemArray = itemArray;
this.itemArray.splice(index,1);
}
答案 0 :(得分:0)
就做
removeItem(itemArray, index){
itemArray.splice(index,1);
}
并且,如果selectedColors是您的数组,请不要使用引号。
removeItem(selectedColors, 5);
答案 1 :(得分:0)
在您的示例中,您正在弄乱事情,或者对您尝试做的事情感到困惑。自.splice
only exists起,就不能.splice
个字符串了。您需要将array
传递到removeItem()
。
我还注意到,您需要删除this
前面的itemArray
关键字。 this
不是您要引用的this
。
请参阅下文,让我知道是否有帮助。
function removeItem(itemArray, index) {
itemArray.splice(index, index);
}
var itemArray = ['green', 'blue', 'red'];
console.log(itemArray);
removeItem(itemArray, 1);
console.log(itemArray);
答案 2 :(得分:0)
在JavaScript this
中引用了您从中调用函数的上下文。你能做的就是
removeItem.call(yourArray, index);
然后this
将在函数中引用您的数组。但是,根据您的情况,您只需删除this
,因为没有它就可以使用传递的参数。
答案 3 :(得分:0)
我在这里可以看到一个普遍的错误...
removeItem('selectedColors',5);
selectedColors
是一个字符串,而不是一个数组,string.splice()
将始终返回错误。确保将数组传递给selectedColors
。
let selectedColors = ["red", "blue"];