为什么filter方法没有删除数组的所有元素?

Ole*_*nov 2 javascript node.js ecmascript-6

this.arol.filter(x=>x.length!==0
                ?(this.arol.splice(this.arol.indexOf(x),1))
                :!true)
Run Code Online (Sandbox Code Playgroud)

我试图以多种不同的方式更改它,但是它仍然不能删除数组的所有元素,它总是在删除大多数元素后留下1或2个...。我认为问题在于条件...我们在检查数组元素的长度是否不为0(全部为字符串)...

Cer*_*nce 5

不要splice filter ing时尝试-而是从filter回调返回一个true或falsey值,具体取决于您是否要在新数组中包括要迭代的项,并使用从返回的结果数组.filter

this.arol = this.arol.filter(x => x.length !== 0);
^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)