数组相似度问题,输入的数组 最相似 已知维度(n)数组的哪一项? var skuArr = [['2','套餐一','红','型号1'],['2','套餐一','红','型号2'],['2','套餐一','黄','型号1']]; var typeArr = Array.protoype.slice.apply(document.querySelectorAll("input:checked")), selected = {}; for(var key in skuArr){ if(JSON.parse(typeArr) == JSON.parse(skuArr[key])){ selected = skuArr[key] } } if(JSON.parse(selected) == "{}"){ selected = skuArr[0] }当相似度不完全相等时,求skuArr 最相似的项?
1 回答
慕勒3428872
TA贡献1848条经验 获得超6个赞
问题可以简化为求两个集合的交集的大小。相当于求两个数组的共同元素的个数。
然后根据交集大小程度进行排序。。
追加代码如下:
var arr =[1,2,'a','c',3,4,5];
var brr =['c','3','d',2,1,5,'f'];
// arr 和brr 有相同元素的个数
function compare(arr,brr){
var mount =0;
arr.forEach(function(item){
if(brr.some(function(value){
return item==value;
})){
mount++;
}
})
return mount;
}
添加回答
举报
0/150
提交
取消