像我有一个阵列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