数组相似度问题

图片描述

数组相似度问题,输入的数组 最相似 已知维度(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 最相似的项?

阅读 2.5k
1 个回答

问题可以简化为求两个集合的交集的大小。相当于求两个数组的共同元素的个数。
然后根据交集大小程度进行排序。。

追加代码如下:

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;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏