如何确定对象中数组的值?

时间:2017-06-27 20:34:44

标签: javascript arrays object

我从一个网站获得了100个对象(JSON),就像这样构建。

"object" : [{
  "id": 12243,
  "name": 'Carl',
  "text": 'subheader',
  "tags": ["cars","child", "blue"],
  ...
},
{
  "id": 12245,
  "name": 'Dark',
  "text": 'subheader',
  "tags": ["cars"],
  ...
}
...
]

我想只获得标签 child 的标签。我该怎么办?

4 个答案:

答案 0 :(得分:3)

您可以尝试这样的事情:

var objectsWithChild = json.object.filter(function(o){
    return o.tags.includes("child");
});

其中json是你的json字符串。

答案 1 :(得分:0)

使用Array.prototype.filter()



var objs = [{
  "id": 12243,
  "name": 'Carl',
  "text": 'subheader',
  "tags": ["cars","child", "blue"]
},
{
  "id": 12245,
  "name": 'Dark',
  "text": 'subheader',
  "tags": ["cars"]
}]
  
  
var objsWithTags = objs.filter(obj => obj.tags.indexOf('child') > -1);

console.log(objsWithTags);




答案 2 :(得分:0)

克里斯托斯有一种更清洁的方式来做这件事,但这种方式对于初学者来说可能更清楚。一种方法是使用嵌套for循环。

var myObjects = []

for (var i = 0; i < data.object.length; i++) {
    var ob = data.object[i];
    for (var j = 0; j < ob.tags.length; j++) {
         if (ob.tags[i] === "child") {
             myObjects.push(ob);
         }
    }
}

答案 3 :(得分:0)

可能有多种方法可以实现这一点。 但主要观点大致相同。 在这里以文字形式:

  1. 为匹配的对象定义容器(例如数组)。
  2. 遍历所有对象。
  3. 遍历数组“tags”的所有条目。
  4. 检查您是否找到了所需的“孩子”值。
  5. 通过将找到的对象添加到容器(数组)中来记住它。