javascript - 我如何在 javascript 对象中查找和计算重复值

标签 javascript jquery arrays

我有下面的数组。为数组做了 console.log,如下所示

(3) [Array(4), Array(4), Array(4)]
0 ["jackpot", "cherry", "bar", "pear"]
1 ["raspberry", "raspberry", "raspberry", "lemon"]
2 ["plum", "crown", "lemon", "jackpot"]

我尝试了下面的操作,在控制台中我只看到我的数组和它旁边的 1

var counts = {};
currentResults.forEach(function(obj) {
var key = JSON.stringify(obj)
counts[key] = (counts[key] || 0) + 1
})
console.log(counts);

我如何在上面的数组/对象中搜索和查找重复值,并计算我使用 javascript/jquery 有多少重复项?

最佳答案

给你一个解决方案

var data = [["jackpot", "cherry", "bar", "pear"], ["raspberry", "raspberry", "raspberry", "lemon"],["plum", "crown", "lemon", "jackpot"]];

var key = {};
for(var i=0; i<data.length; i++){
  for(var j=0; j<data[i].length; j++){
    if(typeof key[data[i][j]] === 'undefined'){
      key[data[i][j]] = 1;
    } else {
      key[data[i][j]] = parseInt(key[data[i][j]]) + 1;
    }
  }
}

console.log(key);

我假设您的数据是数组的数组。遍历数组并针对每个项目,以 JSON(键:值)的形式保存计数。

键作为项目,值是计数。

更新解决方案以获取重复项目

var data = [["jackpot", "cherry", "bar", "pear"], ["raspberry", "raspberry", "raspberry", "lemon"],["plum", "crown", "lemon", "jackpot"]];

var key = {};
var duplicate = [];
for(var i=0; i<data.length; i++){
	for(var j=0; j<data[i].length; j++){
  	if(typeof key[data[i][j]] === 'undefined'){
    	key[data[i][j]] = 1;
    } else {
    	key[data[i][j]] = parseInt(key[data[i][j]]) + 1;
      if(parseInt(key[data[i][j]]) >= 3 && duplicate.indexOf(data[i][j]) == -1){
      	duplicate.push(data[i][j]);
      }
    }
  }
}

console.log(duplicate);

更新了在子数组中查找重复项的解决方案

var data = [["jackpot", "cherry", "bar", "pear"], ["raspberry", "raspberry", "raspberry", "lemon"],["plum","jackpot", "crown", "lemon", "jackpot", "jackpot"]];

var key = {};
var duplicate = [];
for(var i=0; i<data.length; i++){
	key = {};
	for(var j=0; j<data[i].length; j++){
  	if(typeof key[data[i][j]] === 'undefined'){
    	key[data[i][j]] = 1;
    } else {
    	key[data[i][j]] = parseInt(key[data[i][j]]) + 1;
      if(parseInt(key[data[i][j]]) >= 3 && duplicate.indexOf(data[i][j]) == -1){
      	duplicate.push(data[i][j]);
      }
    }
  }
}

console.log(duplicate);

希望对您有所帮助。

关于javascript - 我如何在 javascript 对象中查找和计算重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46320447/

相关文章:

javascript - javascript 中的新运算符是否有性能成本?

javascript - 在网站上查找恶意软件

javascript - jQuery AJAX 调用 Vanilla JS,我错过了什么?

java - 使用 for 循环将数组元素传递到 Oracle 数据库表

python - 如何沿某个特定轴将两个 3d numpy 数组相乘?

javascript - 在 Flipclock.js 上隐藏秒数计数器

javascript - 如果文件名取自用户,则不应用 CSS 规则

jquery - 支持分组选择的两侧多选Jquery插件

jquery - 将绝对 div(高度可变)置于内容上方

PHP SQL : GROUP BY as array index