ank*_*kur 4 javascript arrays jquery json
我正在尝试搜索一个对象并从 json 数组中删除
我的 json 对象数组看起来像
var data = [{
{id: "1", name: "Snatch", type: "crime"},
{id: "2", name: "Witches of Eastwick", type: "comedy"},
{id: "3", name: "X-Men", type: "action"},
{id: "4", name: "Ordinary People", type: "drama"},
{id: "5", name: "Billy Elliot", type: "drama"},
{id: "6", name: "Toy Story", type: "children"}
}];
Run Code Online (Sandbox Code Playgroud)
我想要实现的是,如果我有一个 Id=1 的对象,
我可以搜索与数组匹配的数组并将其从数组中删除。
我正在通过下面的代码尝试这个
function RemoveNode(id)
{
data.forEach(function (emp) {
if(emp.Id == id)
{
delete emp;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我无法让它工作,请建议一个更好的方法来做到这一点
您使用的数据结构无效,您的数组需要放在方括号中 []
对于您的情况,最好使用filter功能:
var data = [
{id: "1", name: "Snatch", type: "crime"},
{id: "2", name: "Witches of Eastwick", type: "comedy"},
{id: "3", name: "X-Men", type: "action"},
{id: "4", name: "Ordinary People", type: "drama"},
{id: "5", name: "Billy Elliot", type: "drama"},
{id: "6", name: "Toy Story", type: "children"}
];
function RemoveNode(id) {
return data.filter(function(emp) {
if (emp.id == id) {
return false;
}
return true;
});
}
var newData = RemoveNode("1");
document.write(JSON.stringify(newData, 0, 4));Run Code Online (Sandbox Code Playgroud)