我正在用javascript定义对象数组,并想根据对象属性删除值。
我使用了以下代码:
pyomo.repn.standard_repn
预期结果: 当我删除值时,它应该给我包含0个元素的数组。
实际输出: 当我删除值时,我得到的数组包含1个元素,并且元素值为null。
答案 0 :(得分:0)
您可以使用Object.values
和splice
。在函数内部,使用JSON.parse和JSON.stringify创建原始数组的新副本,以使原始数组不会被修改。在forEach
回调中使用Object.values
,它将给出一组值。然后使用includes
检查使用Object.values
创建的数组是否包含函数中传递的参数。如果为true,则使用splice从复制的数组中删除元素
var addedItems = [];
var item = {};
item["TId"] = "";
item["VNo"] = "";
item["IDate"] = "";
item["Rate"] = 22;
item["ItemId"] = 12;
item["Quantity"] = 1;
item["ItemTypeId"] = 3;
addedItems.push(item);
function removeValueFromObjectByValue(arr, num) {
let newArr = JSON.parse(JSON.stringify(arr))
arr.forEach(function(item, index) {
let isNumPresent = Object.values(item).includes(num)
if (isNumPresent) {
newArr.splice(index, 1);
}
})
return newArr;
}
console.log(removeValueFromObjectByValue(addedItems, 12));