我有此代码:
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显示该产品仍在列表中。
我在其他地方使用了过滤器,并且在那里工作。我无能为力。我该怎么办才能弄清楚为什么这不起作用?
答案 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)