Мне нужно отфильтровать огромный JSON-файл по его значению.
это мой JSON-код (это часть моего JSON-объекта, в реальном случае его более 1000).
var jsonObject = [
{
"UserId":10259,
"FullName":"hello world",
"CustomerId":"10165"
},
{
"UserId":10405,
"FullName":"test value",
"CustomerId":"10261"
},
{
"UserId":10400,
"FullName":"mark ant",
"CustomerId":"10161"
},
{
"UserId":16224,
"FullName":"jhon cena",
"CustomerId":""
},
{
"UserId":10416,
"FullName":"shoze ahh",
"CustomerId":"1"
},
{
"UserId":10244,
"FullName":"kajal man",
"CustomerId":"10"
}
];
Чтобы отфильтровать вышеуказанный объект JSON, я использовал следующую функцию фильтра.
function usersBasedOnIDs(CustomerIds) {
if (CustomerIds == "") {
console.log(jsonObject);
} else if (CustomerIds == "9999xx") {
let result = jsonObject.filter(c => c.CustomerId == "");
console.log(result);
} else {
let result = jsonObject.filter(c => c.CustomerId != "" && CustomerIds.includes(c.CustomerId));
console.log(result);
}
}
Как я вызываю функцию
usersBasedOnIDs("");
usersBasedOnIDs("10261,10165");
usersBasedOnIDs("9999xx");
Есть пара проблем с моим кодом,
Эта функция не работает с IE 11 ранней версии
И еще одна вещь, когда я вызываю функцию как usersBasedOnIDs("10261,10165");
или usersBasedOnIDs("10261");
, она возвращает следующий вывод JSON
{UserId: 10405, FullName: "test value", CustomerId: "10261"}
{UserId: 10416, FullName: "shoze ahh", CustomerId: "1"}
{UserId: 10244, FullName: "kajal man", CustomerId: "10"}
Но я ожидаю, только это
{UserId: 10405, FullName: "test value", CustomerId: "10261"}
Как можно изменить функцию, чтобы избежать этих двух проблем