Javascript将2个新键动态添加到新的dictionary对象或增量(如果存在)
我正在尝试基于两个数据键值对用javascript创建一个字典(我想用它做一种分组方法) 我的数据有两个字段:名称(保留或存储)和月份名称字段:Javascript将2个新键动态添加到新的dictionary对象或增量(如果存在),javascript,dictionary,key,Javascript,Dictionary,Key,我正在尝试基于两个数据键值对用javascript创建一个字典(我想用它做一种分组方法) 我的数据有两个字段:名称(保留或存储)和月份名称字段:somedata={name:“July”,value:“reserved”} 现在,我想把相应的月份累加到一个桶中,并为它们对应的每个组(保留或存储)增加+1。 如何动态迭代数组中的对象?如何动态创建一个dictionary对象,其中key为months,然后每次输入相同的数据对象时,value(或其他字段为reserved)和increment+1?
somedata={name:“July”,value:“reserved”}
现在,我想把相应的月份累加到一个桶中,并为它们对应的每个组(保留或存储)增加+1。
如何动态迭代数组中的对象?如何动态创建一个dictionary对象,其中key为months,然后每次输入相同的数据对象时,value(或其他字段为reserved)和increment+1?所以这基本上是一个按月分组的值对象
在Python中,这非常简单:
ist_of_urls = ['http://www.google.fr/', 'http://www.google.fr/',
'http://www.google.cn/', 'http://www.google.com/',
'http://www.google.fr/', 'http://www.google.fr/',
'http://www.google.fr/', 'http://www.google.com/',
'http://www.google.fr/', 'http://www.google.com/',
'http://www.google.cn/']
urls = [{'url': 'http://www.google.fr/', 'nbr': 1}]
urls_d = {}
for url in list_of_urls:
if not url in urls_d:
urls_d[url] = 1
else:
urls_d[url] += 1
对于一个键url,但我不知道如何在javascript中对两个键执行此操作
编辑:为了更精确,我的任务是为ngx图表生成特定的数据格式:
{name: "...", series: [{name:"..",value:".."},{...}]}
来自api的一些原始数据:
[
{
"Anzahl": 1,
"DemoID": 123456789,
"Monat": "August"
},
{
"Anzahl": 2,
"DemoID": 123456789,
"Monat": "April"
},
{
"Anzahl": 2,
"DemoID": 123456789,
"Monat": "Mai"
}
]
我之前做了一个12个月的数组:
docArray= [
{name: "Januar", series: []}, {name: "Februar", series: []}, {name: "Maerz", series: []}, {name: "April", series: []},
{name: "Mai", series: []}, {name: "Juni", series: []}, {name: "Juli", series: []}, {name: "August", series: []},
{name: "September", series: []}, {name: "Oktober", series: []}, {name: "November", series: []}, {name: "Dezember", series:[]}
]
对于堆叠条形图,我必须准备数据,使其符合数据模式,并将其全部放在一个数组(“docArray”):对于这两种数据,我使用了两种不同的格式化方法(内部角度订阅方法;)
在我看来,这种方法非常乏味,如果数组中有100或1000个不同的值或未知值会怎么样…?对于计数,如果在对象中找不到url,您可以获取一个对象并使用默认值
var数组=[]http://www.google.fr/', 'http://www.google.fr/', 'http://www.google.cn/', 'http://www.google.com/', 'http://www.google.fr/', 'http://www.google.fr/', 'http://www.google.fr/', 'http://www.google.com/', 'http://www.google.fr/', 'http://www.google.com/', 'http://www.google.cn/'],
count=array.reduce((c,s)=>(c[s]=(c[s]|0)+1,c),Object.create(null));
控制台日志(计数)代码>对于计数,如果在对象中找不到url,则可以获取对象并使用默认值
var数组=[]http://www.google.fr/', 'http://www.google.fr/', 'http://www.google.cn/', 'http://www.google.com/', 'http://www.google.fr/', 'http://www.google.fr/', 'http://www.google.fr/', 'http://www.google.com/', 'http://www.google.fr/', 'http://www.google.com/', 'http://www.google.cn/'],
count=array.reduce((c,s)=>(c[s]=(c[s]|0)+1,c),Object.create(null));
控制台日志(计数)代码>以下是Python示例的JS模拟:
const urls_d = {};
for (const url of list_of_urls) {
if (urls_d[url]) {
urls_d[url]++;
} else {
urls_d[url] = 1;
}
}
下面是Python示例的JS模拟:
const urls_d = {};
for (const url of list_of_urls) {
if (urls_d[url]) {
urls_d[url]++;
} else {
urls_d[url] = 1;
}
}
月vs网址?请添加原始数据和想要的结果。好的,我在下面添加了一个示例…请添加您希望从数据中获得的内容。好的,在结尾添加了它..月vs url?请添加原始数据和所需结果。好的,我在下面添加了一个示例…请添加您希望从数据中获得的内容。好的,在末尾添加了它。。
const urls_d = {};
for (const url of list_of_urls) {
if (urls_d[url]) {
urls_d[url]++;
} else {
urls_d[url] = 1;
}
}