我想我有三个数组:
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));