Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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 JS匹配来自不同数组的字符串_Javascript_Firebase_Vue.js_Vuejs2 - Fatal编程技术网

Javascript JS匹配来自不同数组的字符串

Javascript JS匹配来自不同数组的字符串,javascript,firebase,vue.js,vuejs2,Javascript,Firebase,Vue.js,Vuejs2,我正在与vuejs合作一个firebase项目,试图绘制一个图表,显示每月的订户数量。主要问题是只计算每个月创建的配置文件的数量。剩下的步骤我都可以 我想这样做: //每月用户数的计算 设月份=['1月'、'2月'、'3月'、'4月'、'5月'、'6月'、'7月'、'8月'、'9月'、'10月'、'11月'、'12月']; this.users.filter(用户=>{ 让print=user.metadata.creationTime; 用于(var月,以月为单位){ if(打印指数(月)>-

我正在与vuejs合作一个firebase项目,试图绘制一个图表,显示每月的订户数量。主要问题是只计算每个月创建的配置文件的数量。剩下的步骤我都可以

我想这样做:

//每月用户数的计算
设月份=['1月'、'2月'、'3月'、'4月'、'5月'、'6月'、'7月'、'8月'、'9月'、'10月'、'11月'、'12月'];
this.users.filter(用户=>{
让print=user.metadata.creationTime;
用于(var月,以月为单位){
if(打印指数(月)>-1){
console.log(user.email)
}
}
})
我想象它是这样的,。。但是控制台会打印每个月的重复记录


我在想,也许还有另一种方法可以做到这一点,。。或者我只是坚持调整并尝试一下这个吗?

我想你的目标是这样的:

//模拟数据
常量用户=[
{元数据:{creationTime:'3 apr'},
{元数据:{creationTime:'7 apr'}},
{元数据:{creationTime:'26 jan'}},
{元数据:{creationTime:'4 feb'}},
{元数据:{creationTime:'9 dec'}},
{元数据:{creationTime:'25 dec'}},
{元数据:{creationTime:'9 apr'}
]
//小写的月份。。。creationTime假定也使用小写
施工月数=['1月'、'2月'、'3月'、'4月'、'5月'、'6月'、'7月'、'8月'、'9月'、'10月'、'11月'、'12月']
//使用'map'创建与'months'长度相同的数组`
const counts=months.map(month=>{
让计数=0
//在'users'数组上循环,注意'of'的用法,而不是'in'`
for(const user of users){
//使用“includes”有点粗糙,但根据使用方式可能会起作用
//creationTime已格式化。它不比indexOf差
if(user.metadata.creationTime.includes(月)){
++计数
}
}
返回计数
})

console.log('Counts:'+Counts.join('')
目前还不清楚您要做什么。你的预期产出是多少?你的输入是什么样的?我想你的意思是
月中月
而不是
中的
。目前,您正在迭代数值索引。我还要指出的是,6月份的情况与其他月份不同。同样不清楚为什么要使用
过滤器
,似乎不太可能是合适的迭代器。我会避免使用indexOf()并用includes()替换它。此外,我同意@shirtle
for…of
对于数组意味着更多,而
for…in
对于对象的键意味着更多
filter
用于根据特定条件返回一些对象,看起来您并没有尝试这样做。你能提供更多的上下文吗?哦!没有考虑到这一点!我试试看。。谢谢你!现在我学到了一些东西!我必须使用
for/of
循环for数组:)