JavaScript:无法操作由 string.match 生成的数组

标签 javascript arrays

我使用以下方法生成了一个数组:

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/

相关文章:

java - 如何初始化嵌套数组

java - 为什么直接将 Arrays.asList() 分配给 var 时会出现 AssertionError?

javascript - 使用 Chrome 扩展程序中的 POST 数据创建链接

php - Facebook 请求如何工作?

javascript - 动态构建数组,附加值

arrays - mongoDB - 如何在数组内的对象中更新/插入字段?

java - 为什么我的程序在使用foreach循环迭代ArrayList时显示这种类型的错误?

javascript - Chrome 与 Firefox 中的点击事件给出了不同的目标?

javascript - 设置多个属性时如何限制号码变化事件?

javascript - 迭代json数组并将每个值推送到angular js中的列表