Javascript 根据条件从数组中删除项

Javascript 根据条件从数组中删除项,javascript,arrays,Javascript,Arrays,我想过滤数组中的所有单词,并删除多于或少于四个字符的单词。然后我想检查过滤后的单词是否包含“6”,如果是真的,我将从数组中删除它 问题是我在数组中放置了四个“6666”来测试它是否正在删除,但它只删除了3个。我如何才能正确地放置要删除的数字 let textA = "6666 6666 6666 Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium

我想过滤数组中的所有单词,并删除多于或少于四个字符的单词。然后我想检查过滤后的单词是否包含“6”,如果是真的,我将从数组中删除它

问题是我在数组中放置了四个“6666”来测试它是否正在删除,但它只删除了3个。我如何才能正确地放置要删除的数字

let textA = "6666 6666 6666 Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?";
        
        
       const arr1 = textA.split(" ");  
    
    const newArray = arr1.filter(function(element) { 
        return element.length === 4;
    });
    
    
    for (let i = 0; i < newArray.length; i++) {
        if (newArray[i].includes("6")){
            newArray.splice(i, 1);
        }
    }
让textA=“6666 6666 6666在所有的自然错误中都有明确的说明,这是一个值得称赞的事实,是一个符合发明者真实性和准建筑学的原则,必须解释清楚。Nemo enim ipsam Voluptate是一个有着丰富经验的人,他是一个理性的人。最重要的一点是,在劳动和就业领域,所有人都有自己的权利、义务和义务。但是最低限度的成本,是否需要在实验室中进行实际操作,是否需要从消费品中获得流动性?“您是否有权利在一个无法律约束力的法律环境中为他人辩护?您是否有权利在一个无法律效力的法律环境中为他人辩护?”;
常量arr1=textA.split(“”);
const newArray=arr1.filter(函数(元素){
返回元素。长度===4;
});
for(设i=0;i
这是使用
split()
filter()
的理想场所。我们可以在一行中使用这两种过滤器:

让textA=“6666 6666 Sed ut omnis ISTUS natus error(全方位存在错误)的清晰性体现在赞美、尊重、尊重发明者的权利和准建筑师的权利上,这一点必须明确。Nemo enim ipsam Voluptate是一个有着丰富经验的人,他是一个理性的人。最重要的一点是,在劳动和就业领域,所有人都有自己的权利、义务和义务。但是最低限度的成本,是否需要在实验室中进行实际操作,是否需要从消费品中获得流动性?“您是否有权利在一个无法律约束力的法律环境中为他人辩护?您是否有权利在一个无法律效力的法律环境中为他人辩护?”;
const newArray=textA.split(“”).filter(word=>word.length==4&&!word.includes('6'))

console.log(newArray);
您可以使用
filter
同时执行这两个步骤

让textA=“6666 6666 Sed ut omnis ISTUS natus error(全方位存在错误)的清晰性体现在赞美、尊重、尊重发明者的权利和准建筑师的权利上,这一点必须明确。Nemo enim ipsam Voluptate是一个有着丰富经验的人,他是一个理性的人。最重要的一点是,在劳动和就业领域,所有人都有自己的权利、义务和义务。但是最低限度的成本,是否需要在实验室中进行实际操作,是否需要从消费品中获得流动性?“您是否有权利在一个无法律约束力的法律环境中为他人辩护?您是否有权利在一个无法律效力的法律环境中为他人辩护?”;
常量arr1=textA.split(“”);
const newArray=arr1.filter(函数(元素){
return element.length==4&&!element.includes('6');
});

console.log(newArray)
第一部分使用
过滤器,第二部分使用循环,这是有原因的吗?知识限制:|那么,问题就解决了?
拼接
修改数组,因此跳过第二个
6666
,因为它现在处于
0
位置,而您的索引是
1
实际上不是。问题是如果例如,数组中的六个“6666”,代码不会将它们全部删除。