JavaScript 关联数组比较

标签 javascript arrays comparison

我想我有三个数组:

dict['tag'] = 'INPUT';
dict['type'] = 'checkbox';
dict['name'] = 'remember'

dict2['tag'] = 'INPUT2';
dict2['type'] = 'checkbox';
dict2['name'] = 'remember';

dict3['type'] = 'checkboxEdit';
dict3['name'] = 'remember'
dict3['tag'] = 'INPUT3';

现在我想要实现的是,即使数组未排序,我也想知道数组中有多少元素相等,例如

function(dict, dict2) return 2 //cause input values are not the same
function(dict, dict3) return 1 //cause name values are the same
function(dict2, dict3) return 1 //cause name values are the same

实现这一目标最有效的方法是什么?数据结构也可以改变,所以如果有更好的东西,请告诉我。

最佳答案

其实很简单..

var dict = {}, dict2 = {}, dict3 = {};

dict['tag'] = 'INPUT';
dict['type'] = 'checkbox';
dict['name'] = 'remember'

dict2['tag'] = 'INPUT2';
dict2['type'] = 'checkbox';
dict2['name'] = 'remember';

dict3['type'] = 'checkboxEdit';
dict3['name'] = 'remember'
dict3['tag'] = 'INPUT3';

function compare(d1, d2) {
  var count = 0;
  Object.keys(d1).forEach(function (k) {
      if(d1[k] === d2[k]) count++;
  });
  return count;
}

alert(compare(dict, dict2));
alert(compare(dict, dict3));
alert(compare(dict2, dict3));

关于JavaScript 关联数组比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31514610/

相关文章:

javascript - 我的递归函数没有返回任何内容

javascript - 查找数组/矩阵的总和和 max.min

java - 程序可以运行,但不正确并且不确定哪里出了问题

mysql - 高级SQL查询(查询中查询、比较)

c - 解决使用C的strcmp函数比较两个不同结构的元素时的警告

javascript - Meteor Js + 短信验证

javascript - MongoDB:在 find() 中使用 $where 会引发错误

comparison - yum 如何比较版本?

javascript - 我可以在一个独特的 html 页面中创建两个 Canvas 空间吗?

android - 为什么我会收到带有 SharedPreference 变量的 ArrayIndexOutOfBoundsException?