javascript - Javascript 练习:删除给定元素之前的所有数组元素
问题描述
我正在使用 Javascript 进行一些练习。来自js.checkio.org的这个练习提出了这个问题:
并非所有元素都很重要。您需要在这里做的是从数组中删除给定元素之前的所有元素。这里有两种极端情况:(1)如果找不到切割元素,则不应更改数组。(2) 如果数组为空,则应保持为空。
这是我的代码:
function removeAllBefore(array, number) {
if (array.length === 0)
return array;
for (let element of array)
if (element === number)
filtered = array.filter(n => n => number);
return filtered;
}
console.log(removeAllBefore([1, 2, 3, 4, 5], 2));
我能够拥有新数组的值,问题在于“if(元素!==数字)返回数组”的语句,我不能将它放入代码中而没有错误,现在我对解决方案。
感谢大家对卡洛的支持
解决方案
function removeAllBefore (array, number) {
const indexOfElement = array.indexOf(number);
if(indexOfElement !== -1) {
return array.splice(indexOfElement, array.length - 1);
}
return array;
}
console.log(removeAllBefore([1, 2, 3, 4, 5], 6)); // element not found
console.log(removeAllBefore([1, 2, 3, 4, 5], 3)); // found element
console.log(removeAllBefore([], 6)); // empty array
首先找到该元素的索引,然后只使用.splice()
删除该索引之前的元素。
推荐阅读
- swift - 单击取消按钮时隐藏 TableView
- laravel - Firefox 和 laravel 中删除 http 方法的问题
- ionic3 - Ionic 3.0 - LazyLoad Image,只显示第一个图像,其余的仍在使用默认图像?
- reactjs - 错误:带有 ReactJS 和 Django 的 webpack-dev-server
- c - 关于编写逻辑的错误编码
- php - Laravel 策略(App\Policy 函数的参数太少)
- android - SupportFragmentManager 事务与自定义动画错误
- mysql - 基表或视图已存在!(laravel 航海者)
- ios - Xcode 10 - UITests - 原因:找不到图像
- mongodb - 比较同一文档中的两个数组字段