使用支持 IE8 的 JavaScript 中的值从数组中删除一个元素 [重复]
Posted
技术标签:
【中文标题】使用支持 IE8 的 JavaScript 中的值从数组中删除一个元素 [重复]【英文标题】:Delete an element from an array using its value in javaScript which supports IE8 [duplicate] 【发布时间】:2015-07-18 16:03:19 【问题描述】:我想使用它的值而不是在 IE8 上工作的索引从数组中删除一项。任何帮助将不胜感激。谢谢。
这是我的数组:
var myArray = ['one', 'two', 'three'];
结果应该是这样的:
删除操作:
myArray.splice('three');
结果:
myArray =['one', 'two'];
我试过了,但它在 IE8 中不起作用。
angular.forEach($scope.leftList, function (leftItems)
var arrlen = $scope.rightList.length;
for (var j = 0; j<arrlen; j++)
if (leftItems == $scope.rightList[j])
$scope.rightList = $scope.rightList.slice(0, j).concat($scope.rightList.slice(j+1, arrlen));
);
【问题讨论】:
如果'three'
出现多次怎么办?
你在数组中有什么样的值,只有单词?每个项目一个字?
"我想..." - 但是您没有显示任何代码表明您已经开始这样做了;你走了多远?你在哪里卡住了?
是的,只有单词,但每个项目可以包含多个单词。
@大卫。我添加了有问题的代码。它在 IE8 中不起作用
【参考方案1】:
您可以使用split
和join
方法,并且在适当的时候还包括一些正则表达式替换:
var myArray = ['one item', 'two', 'three', 'two', 'two', 'two', 'two', 'fourth item'];
function clearFromArray(item, array)
var re1 = new RegExp(item,"g");
var re2 = new RegExp('(##)+',"g");
return array.join('##').replace(re1, '').replace(re2, '##').split('##');
;
document.getElementById('result').innerhtml = clearFromArray('two', myArray);
<div id="result"></div>
同样在Fiddle。
【讨论】:
以上是关于使用支持 IE8 的 JavaScript 中的值从数组中删除一个元素 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
我如何使用 javascript 在 IE7、IE8、Safari 和其他支持的浏览器中播放 .Wav 声音
JavaScript——数组的indexOf()方法在IE8中的兼容性问题
尝试使用javascript添加样式标签(IE8中的innerHTML)
JavaScript Object.keys()方法替代与IE8的兼容性