我有一个数字数组,当与.filter()
一起使用时,应删除最后一个项目。问题是只要存在重复项,该方法就不起作用。
var numbers = [1, 4, 2, 3, 4];
numbers.filter((num, index, array) => array.indexOf(num) !== array.length - 1)
有解决此错误的简便方法吗?
答案 0 :(得分:2)
也许只使用index
而不是array.indexOf(num)
?
或仅更改数组:
numbers.pop();
或者如果您想获取一个新数组:
const withoutLast = numbers.slice(0, -1);
答案 1 :(得分:1)
尝试用lastIndexOf
代替indexOf
无论哪种方式,最好使用其他方法,因为有很多方法!
1- array.splice(-1)
删除同一数组中的最后一个元素
2- array.slice(0, -1)
删除最后一个元素并返回一个新数组
3- array.pop()
删除同一数组中的最后一个元素