所以,我试图检查最近推送的数组对象的存在。 我正在使用angularJS开发Web应用程序。检查数组对象是否存在
我具有如
vm.data.detail
所以我有让用户CRUD的模块形式,其定义的阵列。该模块是关于产品库存。有一个按钮可以在我的角度控制器中运行addProduct()函数。
addProduct命令功能:
function addProduct() {
//to check whether the array is empty.
if (vm.data.detail.length == 0) {
vm.data.detail.push({
product: vm.data.product_id.selected,
current_qty: vm.data.product_id.selected.qty,
new_qty: Number(vm.data.product_id.selected.qty) - Number(1),
difference: Number(vm.data.product_id.selected.qty) - (Number(vm.data.product_id.selected.qty) - Number(1)),
remarks: ''
});
console.log("Product just been added");
}
//if the array is not empty
else {
for (var i = 0; i < vm.data.detail.length; i++) {
//to check whether the selected product is already inside the array
if (vm.data.product_id.selected.name == vm.data.detail[i].product.name) {
console.log("same product selected");
//data
}
//if there is no selected product inside the array, then add it
else {
console.log("different product has just been selected");
vm.data.detail.push({
product: vm.data.product_id.selected,
current_qty: vm.data.product_id.selected.qty,
new_qty: 0,
difference: 0,
remarks: ''
});
}
}
}
}
上面的代码工作良好,当阵列只是由一个产品。当我尝试向产品中添加另一个产品B时,会出现问题。这里是条件:
- 产品A已经在阵列中。
- 选择产品B,然后添加到阵列中。现在阵列由2个产品组成。
- 当我测试添加一个新产品B时,我不知道为什么数组仍然被推入一个新的产品B.所以现在,该阵列包含3个产品(1个产品A和2个产品B) 。
我想的是,当我试图添加第二个产品B,阵列将不会受到新产品B.
缺少什么我这里推?已经处理好几个小时,无法弄清楚我为“验证”添加了什么。
请注意,阵列推送的对象已经是正确的。我只是不知道该怎么说。看起来像里面的逻辑仍然缺乏的东西,但我不知道什么是缺少的
非常感谢你给予的帮助。
我看不到PHP,为什么标签? – RiggsFolly
对不起,先生,我错误地认为:) – Vinfoster0701
看起来远比它需要更复杂。需要查看视图才能看到这是如何使用的 – charlietfl