angularjs 中的数组过滤器
Array filter in angularjs
我需要创建一个过滤器来搜索以下对象数组,并过滤掉数组中任何对象中 ID
值等于 Message
值的那些对象。此外,过滤器应该 return 仅 level
等于 1
的对象。我已经设法过滤了 level
属性,但我似乎无法弄清楚如何进行其余操作。
举个例子:ID: 001
在其Message
中包含006
,所以我想过滤掉所有ID
为006
的对象.
$scope.myData = [
{
"ID" : "001",
"Message" : "006",
"level":"1"
},
{
"ID" : "002",
"Message" : "test test test test1",
"level":"1"
},
{
"ID" : "003",
"Message" : "test test test test",
"level":"1"
},
{
"ID" : "004",
"Message" : "test test test test",
"level":"1"
},
{
"ID" : "005",
"Message" : " My Test",
"level":"1"
},
{
"ID" : "006",
"Message" : "",
"level":"1"
},
{
"ID" : "007",
"Message" : "next level",
"level":"2"
}
];
})
和过滤器:
app.filter('filterData3', function () {
return function (data) {
var dataToBePushed = [];
data.forEach(function (resultData) {
if (resultData.level == 1)
dataToBePushed.push(resultData);
});
return dataToBePushed;
}
});
假设您想要的是 NOT 在过滤后的数组中包含 ID 包含在另一个元素的消息中的元素,您可以编写如下过滤器:
.filter('filterData3', function () {
return function (data) {
var dataToBePushed = [];
var messages =[];
data.forEach(function (resultData) {
if (resultData.level == 1 && (messages.indexOf(resultData.ID) == -1)) {
messages.push(resultData.Message);
dataToBePushed.push(resultData);
}
});
return dataToBePushed;
}})
希望这对你有用
我需要创建一个过滤器来搜索以下对象数组,并过滤掉数组中任何对象中 ID
值等于 Message
值的那些对象。此外,过滤器应该 return 仅 level
等于 1
的对象。我已经设法过滤了 level
属性,但我似乎无法弄清楚如何进行其余操作。
举个例子:ID: 001
在其Message
中包含006
,所以我想过滤掉所有ID
为006
的对象.
$scope.myData = [
{
"ID" : "001",
"Message" : "006",
"level":"1"
},
{
"ID" : "002",
"Message" : "test test test test1",
"level":"1"
},
{
"ID" : "003",
"Message" : "test test test test",
"level":"1"
},
{
"ID" : "004",
"Message" : "test test test test",
"level":"1"
},
{
"ID" : "005",
"Message" : " My Test",
"level":"1"
},
{
"ID" : "006",
"Message" : "",
"level":"1"
},
{
"ID" : "007",
"Message" : "next level",
"level":"2"
}
];
})
和过滤器:
app.filter('filterData3', function () {
return function (data) {
var dataToBePushed = [];
data.forEach(function (resultData) {
if (resultData.level == 1)
dataToBePushed.push(resultData);
});
return dataToBePushed;
}
});
假设您想要的是 NOT 在过滤后的数组中包含 ID 包含在另一个元素的消息中的元素,您可以编写如下过滤器:
.filter('filterData3', function () {
return function (data) {
var dataToBePushed = [];
var messages =[];
data.forEach(function (resultData) {
if (resultData.level == 1 && (messages.indexOf(resultData.ID) == -1)) {
messages.push(resultData.Message);
dataToBePushed.push(resultData);
}
});
return dataToBePushed;
}})
希望这对你有用