如何从阵列的副本中删除对象而不从原始阵列中删除对象?从阵列的副本中删除项目而不将其从阵列中删除
我有一个全局变量:
var userTrickList = [];
和一个函数里面,我作出这样的全局数组的一个副本:
var tempUserTrickList = userTrickList;
然后我用我创建到删除的removeItem
功能某个对象。
removeItem(considerTrick.IDName, tempUserTrickList);
function removeItem(item, list) {
//takes a string as 'item', finds in the array as 'list',
//then removes it from the list.
for(var i = 0; i < list.length; i++)
{
if(item === list[i])
{
list.splice(i,1);
}
}
}
我的问题是,这个功能从userTrickList
太删除。
任何想法?这绝对是"removeItem(considerTrick.IDName, tempUserTrickList);"
中的一个问题,但我想不出一个解决方案。
我确实检查过了,这不起作用您必须使用slice而不是splice.bcoz splice会影响源数组。 http://fiddle.jshell.net/QRK4Q/ – Balachandran
谢谢丹尼尔2号!和Manishankar! (编号1 ...) 像魅力一样工作:')这个社区生病了! –
@Manishankar你绝对正确。我链接到正确使用'slice'的示例,并且在复制时错误地添加了'p'。谢谢你的收获。 – Daniel