Javascript 如何删除具有匹配值的对象数组中的对象
我想检查数组中是否有匹配值的对象,如果它们匹配,请删除索引最低的对象,因为这将是“较旧”的对象 我成功地使用此方法删除了数组中的重复对象,但当我获得这些对象的特定值时,我不确定Javascript 如何删除具有匹配值的对象数组中的对象,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我想检查数组中是否有匹配值的对象,如果它们匹配,请删除索引最低的对象,因为这将是“较旧”的对象 我成功地使用此方法删除了数组中的重复对象,但当我获得这些对象的特定值时,我不确定 someFunction() { let cart = this.state.currentUser.cart const newCartArray = cart.filter((light, index) => { return index === cart.findIndex(obj =
someFunction() {
let cart = this.state.currentUser.cart
const newCartArray = cart.filter((light, index) => {
return index === cart.findIndex(obj => {
obj.use === light.use
})
})
cart = newCartArray
}
或者,如果您需要检查,请使用
let cart = this.state.currentUser.cart;
for( let i =0; i < cart.length; i++) {
if( cart[i].use === light.use) {
cart.splice(i,1);
break;
}
}
let cart=this.state.currentUser.cart;
for(设i=0;i
您可以获取一张地图
并使用所需的密钥存储最后一个对象,结果只获取最后存储的对象
var数组=[{id:1,索引:0},{id:2,索引:1},{id:3,索引:2},{id:2,索引:3},{id:3,索引:4},{id:1,索引:5},{id:4,索引:6},{id:5,索引:7}],
result=Array.from(Array.reduce((m,o)=>m.set(o.id,o),new-Map.values());
控制台日志(结果)代码>
.as console wrapper{max height:100%!important;top:0;}
您可以筛选出所有后续项与相关属性匹配的项,如下所示:
const newCartArray = cart.filter((light, i, array) => {
return !array.slice(i + 1).some(obj => obj.use === light.use);
})
这应该起作用:
someFunction(){
让购物车=this.state.currentUser.cart
const newcartary=cart.filter((灯光,索引)=>{
return cart.slice(索引+1).findIndex(obj=>{
obj.use==light.use
}) === -1;
})
cart=newcartary
}
您是否有一些数据来说明问题?
const newCartArray = cart.filter((light, i, array) => {
return !array.slice(i + 1).some(obj => obj.use === light.use);
})