【发布时间】:2018-09-04 17:37:56
【问题描述】:
我需要首先检查我的 shippingFees 数组(vuex 状态)中是否存在具有有效负载 ID 的对象,如果该对象存在我需要用有效负载替换它,否则我只需要将有效负载推送到 shippingFees 数组.
现在我正在遍历 shippingFees 中的每个对象,但它不会首先检查对象是否存在,如果 ID 不匹配,它只会将对象推送到数组中。我如何检查是否存在具有 ID 的对象首先存在于数组中并执行某些操作,然后如果它不存在则执行其他操作? :)
SET_SHIPPING_FEES: (state, payload) => {
if (state.shippingFees.length > 0) {
for (let i = 0; i < state.shippingFees.length; i += 1) {
if (state.shippingFees[i].id === payload.id) {
state.shippingFees.splice(i, 1);
state.shippingFees.push(payload);
} else {
state.shippingFees.push(payload);
}
}
} else {
state.shippingFees.push(payload);
}
}
【问题讨论】:
-
你有@RoyJ 的例子吗? :)
-
真的,看起来您只想使用
payload作为splice的第三个参数,并去掉if分支中的push。 -
您是否尝试过使用
Array.prototype.some()? -
你解决了吗?
标签: javascript vue.js ecmascript-6 vuex