首页 > 解决方案 > 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(元素!==数字)返回数组”的语句,我不能将它放入代码中而没有错误,现在我对解决方案。

感谢大家对卡洛的支持

标签: javascriptarrays

解决方案


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()删除该索引之前的元素。


推荐阅读