像我有一個陣列Array('one','three','two');,比方說,我想刪除第三項,我該怎麼做?如何從項目的名稱中刪除數組中的項目?
回答
var a = ['one', 'three', 'two'];
a.splice(a.indexOf('three'), 1);
alert(a);
對於不支持的indexOf瀏覽器有一個變通方法 https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/Array/IndexOf#Compatibility
function RemoveArrayValue(arr, val)
{
var result = [], //empty array
j = 0, i, len = arr.length;
for(i = 0; i < len; ++i)
if(arr[i] != val)
result[j++] = val;
return result;
}
BTW:
IndexOf方法是不是IE下的JavaScript數組對象的一部分(也沒有部分的IE8),但是String對象。如果你想的indexOf方法是JS數組對象的一部分,您必須在代碼中聲明這一點:
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(val)
{
for(var i = 0, len = this.length; i < len; ++i)
if(this[i] === val)
return i;
return -1;
}
}
'indexOf'是'Array.prototype'的一部分,但並未被所有瀏覽器實現(IE缺少它),此方法是ECMAScript 3rd Ed的一部分。標準,你應該在覆蓋它之前檢查是否存在本地'Array.prototype.indexOf',因爲本機實現閃電般快...... – CMS 2010-02-07 15:36:08
對!謝謝你的評論。我按照你的建議更新了上面的代碼。 :) – 2010-02-07 15:45:11
- 1. 從JavaScript中移除項目從數組中刪除項目
- 2. Laravel部署項目並從url中刪除項目名稱?
- 3. 如何在Laravel中刪除路徑名中的項目名稱
- 4. 如何從ListView中刪除項目而不從數據庫中刪除項目?
- 5. 從ListPreference中刪除數組項目
- 6. 從動態數組中刪除項目
- 7. PHP從數組中刪除項目
- 8. C#從類數組中刪除項目
- 9. jQuery從數組中刪除項目
- 10. 從數組中刪除多個項目
- 11. 從通用數組中刪除項目
- 12. 如何從一個數組中的項目中刪除模式
- 13. 如何從jquery中的數組中刪除項目?
- 14. 如何從PowerShell中的數組中刪除項目?
- 15. 如何從jquery中的數組對象中刪除項目
- 16. 無法從最近的項目列表中刪除長項目名稱
- 17. 如何從數組中排除項目?
- 18. 刪除數組中的項目
- 19. 刪除PHP數組中項目的.htm
- 20. 如何通過sqlite表中的名稱刪除listview項目
- 21. 如何在Idea中刪除項目名稱的粗體樣式?
- 22. 如何從Perl數組中刪除重複的項目?
- 23. Android - 從ListView中刪除項目但不從數據庫中刪除項目
- 24. 從列表中刪除項目而不從數據源中刪除項目 - c#
- 25. 從組合框中刪除項目
- 26. 從ItemsControl中刪除項目
- 27. 從BlockingCollection中刪除項目
- 28. 從ColumnSeries中刪除項目
- 29. 從RecyclerView中刪除項目
- 30. 從表中刪除項目
另外,我敢肯定你的參數傳遞給'splice'都搞砸了。應該是相反的:'a.splice(a.indexOf('three'),1);'見https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/Array/Splice – 2010-02-07 15:22:09
修正了arg命令。 – 2010-02-07 15:28:05