在javascript中动态添加变量

时间:2018-07-05 20:09:04

标签: javascript

我一直在尝试创建一个删除功能来从不同的数组中删除项目。我的函数就是这样,它接受数组名称和该数组中项目的索引。

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);
}

4 个答案:

答案 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"];