[英]JavaScript - Loop JSON array and match string in subarray
我有带子数组的JSON数组,我想循环搜索并查找用户的用户名是否为“ admin”。 如果是这样,则创建JSON数组将包含属于用户“ admin”的数据(区域,运动,城市等)。 我不知道如何在循环中找到它然后切成薄片。 我为这个愚蠢的问题感到抱歉,但我有点迷茫。
这是具有结构的JSON数组:
[
{
"_id": "5520f52e2c0a22541541bde1",
"region": {
"_id": "551e6779d8f1afa01bd86529",
"name": "region_name"
},
"user": {
"_id": "551a938af056a7fc099879c1",
"firstName": "John",
"lastName": "Boo",
"username": "admin",
"id": "551a938af056a7fc099879c1"
},
"__v": 0,
"sport": [
{
"_id": "551e69c6d8f1afa01bd86533",
"name": "Running"
}
],
"city": "some_city",
"advert": "some_advert",
"title": "I want to run!",
"created": "2015-04-05T08:41:18.173Z"
},
{
"_id": "552010740628cab002b3a700",
"region": {
"_id": "551e67b6d8f1afa01bd8652f",
"name": "region_name"
},
"user": {
"_id": "551a938af056a7fc099879c1",
"firstName": "Bill",
"lastName": "Foo",
"username": "bill_foo",
"id": "551a938af056a7fc099879c1"
},
"__v": 0,
"sport": [
{
"_id": "551e5e01abb74a8423410b88",
"nazev": "Hockey"
}
],
"city": "some_city",
"advert": "some_advert",
"title": "some_title",
"created": "2015-04-04T16:25:24.733Z"
}
]
编辑:用户'admin'的预期结果是:
[
{
"_id": "5520f52e2c0a22541541bde1",
"region": {
"_id": "551e6779d8f1afa01bd86529",
"name": "region_name"
},
"user": {
"_id": "551a938af056a7fc099879c1",
"firstName": "John",
"lastName": "Boo",
"username": "admin",
"id": "551a938af056a7fc099879c1"
},
"__v": 0,
"sport": [
{
"_id": "551e69c6d8f1afa01bd86533",
"name": "Running"
}
],
"city": "some_city",
"advert": "some_advert",
"title": "I want to run!",
"created": "2015-04-05T08:41:18.173Z"
}]
遍历数组,并使用用户名admin
的用户拉出每个项目:
var result = [];
var nameToSearchFor = 'admin';
for(var index = 0; index < arr.length; index++)
{
var item = arr[index];
if(item.user.username === nameToSearchFor)
{
result.push(item);
}
}
您可以使用像jinqJs这样的开源项目对数组执行类似SQL的查询。
var data = [ { "_id": "5520f52e2c0a22541541bde1", "region": { "_id": "551e6779d8f1afa01bd86529", "name": "region_name" }, "user": { "_id": "551a938af056a7fc099879c1", "firstName": "John", "lastName": "Boo", "username": "admin", "id": "551a938af056a7fc099879c1" }, "__v": 0, "sport": [ { "_id": "551e69c6d8f1afa01bd86533", "name": "Running" } ], "city": "some_city", "advert": "some_advert", "title": "I want to run!", "created": "2015-04-05T08:41:18.173Z" }, { "_id": "552010740628cab002b3a700", "region": { "_id": "551e67b6d8f1afa01bd8652f", "name": "region_name" }, "user": { "_id": "551a938af056a7fc099879c1", "firstName": "Bill", "lastName": "Foo", "username": "bill_foo", "id": "551a938af056a7fc099879c1" }, "__v": 0, "sport": [ { "_id": "551e5e01abb74a8423410b88", "nazev": "Hockey" } ], "city": "some_city", "advert": "some_advert", "title": "some_title", "created": "2015-04-04T16:25:24.733Z" } ]; var result = jinqJs() .from(data) .where(function(row){return row.user.username==='admin';}) .select(); document.body.innerHTML = '<pre>' + JSON.stringify(result, null, 4) + '</pre><br><br>';
<script src="https://rawgit.com/fordth/jinqJs/master/jinqjs.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.