【发布时间】:2020-06-24 02:51:12
【问题描述】:
我正在尝试过滤掉数组中的所有字符串,但我这样做的方式也是过滤掉 0。我使用 filter() 和 for 循环/删除来尝试这个,但每次都会删除零时间。
这是我尝试使用 for 循环进行过滤(filter() 用于删除空数组元素):
function filterArray(arr) {
let newArr = arr;
for (let i = 0; i < newArr.length; i++) {
if (typeof newArr[i] === "string"){
delete newArr[i];
}
}
newArr = newArr.filter(Boolean);
return newArr;
}
不工作的测试用例是(所有其他测试用例都正常工作):
filterArray([1, "a", "b", 0, 15]);
这应该返回 [1, 0, 15] 但它返回的是 [1,15]。另外,当我测试console.log(typeof arr[3]); 时,它返回“数字”,所以我认为根据我的 if 语句它不会被删除。
感谢任何帮助/澄清!
【问题讨论】:
标签: javascript arrays string filter