我将数据推入数组并在json解析数组后看起来像。 使用数组推送
itens_arr.push(JSON.stringify({
id_item: $item_id,
quantity: $item_quantity,
assembly: assemble_val,
unassembly:disassemble_val
}));
$.cookie("itens", itens_arr);
将价值保存到cookies中
删除功能
var get_parse =JSON.parse($.cookie("itens"));
alert(get_parse)
低于值
{"id_item":"43","quantity":"2","assembly":1,"unassembly":0},{"id_item":"41","quantity":"3","assembly":1,"unassembly":0}
删除我使用此代码。但没有工作
var filtered = get_parse.id_item.filter(function(item) {
return item.id_item !== remove_val;
});
但如何删除完整对象,在我的情况下,我想删除完整的对象基于" id_item"值
答案 0 :(得分:1)
您需要迭代数据数组并测试正确的值。
var data = [{ id_item: "43", quantity: "2", assembly: 1, unassembly: 0 }, { id_item: "41", quantity: "3", assembly: 1, unassembly: 0 }],
remove_val = '41',
filtered = data.filter(function(item) {
return item.id_item !== remove_val;
});
console.log(filtered);
答案 1 :(得分:0)
<强>第一强>
您提供了2个对象而不是数组。 []
遗失了。确保你有一个阵列。
<强>第二强>
您的remove_val
应该是一个字符串,因为您的对象id_item是字符串。
const get_parse = [{
"id_item": "43",
"quantity": "2",
"assembly": 1,
"unassembly": 0
},
{
"id_item": "41",
"quantity": "3",
"assembly": 1,
"unassembly": 0
}
];
const remove_val = "43";
console.log(get_parse.filter(d=>d['id_item']!==remove_val));
答案 2 :(得分:0)
You can use $.grep , make sure you have use '[]' brackets
var my = [{ "id_item": "43", "quantity": "2", "assembly": 1, "unassembly": 0 } , { "id_item": "41", "quantity": "3", "assembly": 1, "unassembly": 0 }]
var data = $.grep(my, function (e) {
return e.id_item != 43;
});
console.log(data);
答案 3 :(得分:0)
一些观察结果:
get_parse应该是array
,因为itens
包含array of objects
而不是single
个对象。
因此,get_parse应该是这样的。
[{"id_item":"43","quantity":"2","assembly":1,"unassembly":0},
{"id_item":"41","quantity":"3","assembly":1,"unassembly":0}]
数组filter()方法适用于array
而不是string
。它将创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。
因此,如果您尝试过滤字符串(get_parse.id_item
),则会出现以下错误
未捕获的TypeError:get_parse.id_item.filter不是函数
试试这个:
var get_parse = [{"id_item":"43","quantity":"2","assembly":1,"unassembly":0},
{"id_item":"41","quantity":"3","assembly":1,"unassembly":0}]
var remove_val = "43";
var filtered = get_parse.filter(function(item) {
return item.id_item !== remove_val;
});
console.log(filtered);