数组上的Javascript计数值
我有一些数据,其中一个字段叫做tags,in有时会包含一个值数组 我需要做的是计算这些值,并将它们放入单独的变量中数组上的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": [
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++;
}
迭代数组并继续。当您遇到特定问题时,请返回