我使用以下方法生成了一个数组:
var arr = [];
arr = string.match(/(?:^| )([a-z]+)(?= [A-Z])/g);
这按预期工作,并且数组已满,可以使用 console.log 或alert()。
数组包含我需要过滤的单词,所以我试图 使用 .splice 删除不需要的相同单词实例:
for (var i = arr.length - 1; i >= 0; i--) {
if (arr[i] === 'jim') {
arr.splice(i, 1);
}
}
for 循环无法识别任何实例,例如, 数组虽然有几个。
我使用自己制作的数组尝试了循环,效果很好,即:
arr = ['吉姆', '鲍勃', '亚瑟', '吉姆', '弗雷德']
我还尝试了以下报告“jim”!==“jim”以及其他不等于“jim”的名称。同样,这个循环可以很好地处理自分配的数组。
var i = arr.length;
while ( i-- )
if (arr[i] === 'jim')
arr.splice(i, 1);
else
alert( "'" + arr[i].toString() + "' !== 'jim'" );
我不是由 string.match 生成的数组是什么? 理解?任何帮助将不胜感激。
最佳答案
使用Array.filter()
可以节省大量时间:
arr = arr.filter(function(x){
return x.trim() !== 'jim';
});
关于JavaScript:无法操作由 string.match 生成的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466615/