试图过滤一个数组

时间:2019-02-19 13:28:15

标签: javascript

我有此代码:

console.log(this.productlist[this.productlist.length-1] === product); //says: true
this.productlist == this.productlist.filter(p => p !== product);
console.log(this.productlist);  //the product is still in the list

我想从product中过滤出this.productlist(列表中的最后一项)。第一个console.log表示true,因此两个对象都相同。但是第二个console.log显示该产品仍在列表中。

我在其他地方使用了过滤器,并且在那里工作。我无能为力。我该怎么办才能弄清楚为什么这不起作用?

3 个答案:

答案 0 :(得分:1)

从数组中删除最后一项的各种方法:

使用过滤器:

array = array.filter((elem,index) => index != array.length-1)

使用接头:

array.splice(array.length-1)

使用切片:

array.slice(0,array.length-1)

答案 1 :(得分:1)

在第2行中,您使用的是==等式运算符,而不是赋值=

答案 2 :(得分:0)

如果您特别在最后一个元素之后,可以使用pop。

let a = [1,2,3,4]
let b = a.pop()
console.log(a)
console.log(b)