[英]how to loop through array of objects and match property with variable using linq.js
[英]How can get all objects whose sub object's property matches my string array using linq.js?
我有一个标签名称数组:
var标签= ['tagOne','tagTwo']
我想使用它来查询下面的数组并获取所有与标签匹配的项目。
var items =
[
{
'name': 'itemOne',
'tags': [
{ name: 'tagOne' }
]
},
{
'name': 'itemTwo',
'tags': [
{ name: 'tagTwo' }
]
}
];
我如何用linq Js做到这一点? IE在这种情况下,两个项目都将被退回
这应该为您工作:
物品
var items =
[
{
'name': 'itemOne',
'tags': [
{ name: 'tagOne' }
]
},
{
'name': 'itemTwo',
'tags': [
{ name: 'tagTwo' }
]
},
{
'name': 'itemThree',
'tags': [
{ name: 'tagThree' }
]
}
];
标签:-
var tags = ['tagOne', 'tagTwo'];
搜索标签:-
var fillteredItems = items.filter(function(item){
var tagsInItem = item["tags"];
for (var i = 0; i < tags.length; i++) {
for (var j = 0; j < tagsInItem.length; j++) {
if(tags[i]==tagsInItem[j].name)
return item;
};
};
});
打印结果:-
fillteredItems.forEach(function(item){
console.log("items",item);
})
尝试这个; 它可能不是最有效的方法(我以前从未使用过linq.js),但它可以工作:
// Enumerate through the items
var matches = Enumerable.From(items)
.Where(function(item) {
// Enumerate through the item's tags
return Enumerable.From(item.tags).Any(function(tag) {
// Find matching tags by name
return Enumerable.From(tags).Contains(tag.name);
})
})
.ToArray();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.