我是一个帮助翻译文本的助手。
我尝试使用上述函数输出以下内容: Google: 2 Microsoft: 1
foreach 函数正确地计算了键值,但是显然记录了以下内容: Google: 2 Microsoft: 1 Google: 2
filter console.log 显示了 Google 和 Microsoft(只显示一次,就像我想要的那样 :)
现在我需要将这两个函数组合起来,但我不确定如何以及最佳方式是什么(请参见我的 fiddle:https://jsfiddle.net/z359qo1d/)
你知道下一步该怎么做吗?
我正在尝试修复这个问题,但我有些困惑,需要一些帮助和建议。我试图越来越了解es6,但我不知道最好的方法来解决我的问题。
我正在获取一个大的json文件,它看起来有点像这样:
[
{
"company": "Google",
"location": "USA",
"email": null
},
{
"company": "Microsoft",
"location": "USA",
"email": "mail@mail.com"
},
{
"company": "Google",
"location": "NLD",
"email": "mail@mail.com"
}
]
我会在表格中展示这些数据,想要添加复选框筛选器,同时也想在旁边添加计数,如下:
[x] Google (2)
[ ] Microsoft (1)
// other function call
[ ] mail@mail.com (2)
我有一个函数,我每次调用它都会传入三个参数(公司、地点、邮箱):
function filterArr(data, key) {
data.forEach(element => {
let countedData = data.filter((el) => {
return el[key] == element[key]
}).length;
// console.log(element[key] + ": " + countedData);
});
data = data.filter((item, index, self) => self.findIndex( t => t[key] === item[key] && item[key] != null) === index )
// console.log(data)
return data;
}
filterArr(data, "company");
我尝试使用上述函数输出以下内容: Google: 2 Microsoft: 1
foreach 函数正确地计算了键值,但是显然记录了以下内容: Google: 2 Microsoft: 1 Google: 2
filter console.log 显示了 Google 和 Microsoft(只显示一次,就像我想要的那样 :)
现在我需要将这两个函数组合起来,但我不确定如何以及最佳方式是什么(请参见我的 fiddle:https://jsfiddle.net/z359qo1d/)
你知道下一步该怎么做吗?
if(!result[current[key]])
替换为if(! (current[key] in result) )
,否则计数器可能永远不会增加... - RaphaMex