如何從陣列的副本中刪除對象而不從原始陣列中刪除對象?從陣列的副本中刪除項目而不將其從陣列中刪除
我有一個全局變量:
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