我有一个要过滤的对象,并且只返回 salesPersonID = "1" 的对象
var jsonData = {
"a": {
"id": "a",
"name": "Lucifer Enterprises",
"salesPersonId": "1"
},
"b": {
"id": "b",
"name": "Charlies Chocolate Factory",
"salesPersonId": "1"
},
"c": {
"id": "c",
"name": "Geckos Investments",
"salesPersonId": "2"
}
};
预期输出:
var jsonDataFiltered = {
"a": {
"id": "a",
"name": "Lucifer Enterprises",
"salesPersonId": "1"
},
"b": {
"id": "b",
"name": "Charlies Chocolate Factory",
"salesPersonId": "1"
}
};
我的尝试
var filteredJsonData = jsonData.filter(function (row){
console.log("test");
});
var filteredJsonData = Object.entries(jsonData).filter(function (entry){
return entry[1].salesPersonId == "1";
});
测试 2 的输出具有正确的值但结构错误:
[
[ "a", { "id": "a", "name": "Lucifer Enterprises", "salesPersonId": "1" } ],
[ "b", { "id": "b", "name": "Charlies Chocolate Factory", "salesPersonId": "1" } ]
]
问题
如何获得所需的输出?
答案 0 :(得分:2)
您可以使用Object.fromEntries
:
var jsonData = {
"a": {
"id": "a",
"name": "Lucifer Enterprises",
"salesPersonId": "1"
},
"b": {
"id": "b",
"name": "Charlies Chocolate Factory",
"salesPersonId": "1"
},
"c": {
"id": "c",
"name": "Geckos Investments",
"salesPersonId": "2"
}
};
var filteredJsonData = Object.fromEntries(Object.entries(jsonData).filter(function (entry){
return entry[1].salesPersonId == "1";
}));
console.log(filteredJsonData);