【发布时间】:2022-06-15 21:05:56
【问题描述】:
试图找到在字符串数组中检查三次重复值的最佳方法。
我发现了很多 duplicates values 的 stackoverflow 解决方案,但这里的情况并非如此。
这是我能解决这个问题的最快方法,我不确定这是否是正确的方法:
const array = [
"peace",
"peace",
"Vrede",
"Patz",
"Salam",
"paz",
"Salam",
"Salam"
];
const findTriplicates = (param) => {
let counts = {};
for (let i = 0; i < param.length; i++) {
if (counts[param[i]]) {
counts[param[i]] += 1;
} else {
counts[param[i]] = 1;
}
}
for (let i in counts) {
if (counts[i] === 3) {
console.log(i + " exists " + counts[i] + " times.");
}
}
};
findTriplicates(array); // Salam exists 3 times.
请不要犹豫修复我的代码或发布您的解决方案。
提前感谢您的支持:)
干杯!
【问题讨论】:
-
到底是什么问题?因为看起来代码有效。
-
如果您还想检测“大于或等于三个”(我希望如此,但您没有说),则不应执行
counts[i] === 3。 -
@Reyno 感谢您的评论,我不确定我的解决方案是否正确。
-
@ASDFGerte 我同意那么它应该是
counts[i] > 2,但为了不让我的问题复杂化,我将标题编辑为“仅三次”。 -
Well "correct" 完全可以解释,并且可能因每个开发人员而异。这将导致opinion based 不允许的问题/答案。如果您正在寻求改进,我建议您在 codereview.stackexchange.com 上发布您的问题。
标签: javascript arrays compare similarity