Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组上的Javascript计数值_Javascript_Arrays_Json - Fatal编程技术网

数组上的Javascript计数值

数组上的Javascript计数值,javascript,arrays,json,Javascript,Arrays,Json,我有一些数据,其中一个字段叫做tags,in有时会包含一个值数组 我需要做的是计算这些值,并将它们放入单独的变量中 var i = 1; for (obj of myObject[0].object) { window["tag" + i + "_count"] = obj.tags.length; // e.g. tag1_count = 2, tag2_count = 3, etc... i++; } 以下是数据: myObject = [ { "object": [

我有一些数据,其中一个字段叫做tags,in有时会包含一个值数组

我需要做的是计算这些值,并将它们放入单独的变量中

var i = 1;
for (obj of myObject[0].object) {
    window["tag" + i + "_count"] = obj.tags.length; // e.g. tag1_count = 2, tag2_count = 3, etc...
    i++;
}
以下是数据:

myObject = [

{
"object": [
        {
            "id": "8062",
            "name": "name 1"
            "tags": ['tag1','tag2'],
            "desc": "desc 1",
        },
        {
            "id": "8061",
            "name": "name 2"
            "tags": ['tag 2', 'tag 3'],
            "desc": "desc 2"

        },
        {
        "id": "8060",
        "name": "name 3"
        "tags": ['tag 2', 'tag 3'],
        "desc": "desc 3"

        }
    ]
}

];
这就是我需要的结局:

tag1_count = 1;
tag2_count = 3;
tag3_count = 2;
我该怎么做?

myObject=[{
“对象”:[{
“id”:“8062”,
“名称”:“名称1”,
“标记”:['tag1','tag2'],
“描述”:“描述1”
}, {
“id”:“8061”,
“名称”:“名称2”,
“标记”:['tag2','tag3'],
“描述”:“描述2”
}, {
“id”:“8060”,
“名称”:“名称3”,
“标记”:['tag2','tag3'],
“描述”:“描述3”
}]
}];
var-map={};
myObject[0]。object.forEach(函数(对象){
object.tags.forEach(函数(标记){
if(映射[标记]==未定义){
map[tag]=1;
}否则{
map[tag]=map[tag]+1;
}
});
});
控制台日志(map)
您可以像这样使用
reduce()
并返回对象

var myObject=[{
“对象”:[{
“id”:“8062”,
“名称”:“名称1”,
“标记”:['tag1','tag2'],
“描述”:“描述1”,
}, {
“id”:“8061”,
“名称”:“名称2”,
“标记”:[‘标记2’、‘标记3’],
“描述”:“描述2”
}, {
“id”:“8060”,
“名称”:“名称3”,
“标记”:[‘标记2’、‘标记3’],
“描述”:“描述3”
}]
}];
var result=myObject[0]。object.reduce(函数(r,e){
e、 tags.forEach(函数(t){
var key=t.replace(//g',)+'\u count'
r[键]=(r[键]| 0)+1;
})
返回r;
}, {})

log(result)
只需使用
for of
循环遍历数组,获取
标记的每个长度
属性,并将每个所需值存储到不同的变量中

var i = 1;
for (obj of myObject[0].object) {
    window["tag" + i + "_count"] = obj.tags.length; // e.g. tag1_count = 2, tag2_count = 3, etc...
    i++;
}

迭代数组并继续。当您遇到特定问题时,请返回