繁体   English   中英

匹配来自两个数组的相似词

[英]Match similar kind of words from two arrays

我有两个数组。

Array1 = ['cat','dog','elephant','pig'] 
Array2 = ['cat','scat','pig','spig','bat'].

我需要一个对象,它包含作为Array1的值的Array1和作为与键相似的相似词的值。 我尝试使用filterindexOf但它似乎没有用

预期结果:

{
  cat: ['cat','scat'],
  dog: [],
  pig: ['pig','spig'] 
}

您可以减少第一个数组并将此值作为结果对象的键,并通过查看值是否包含键来过滤第二个数组。

 var array1 = ['cat', 'dog', 'elephant', 'pig'], array2 = ['cat', 'scat', 'pig', 'spig', 'bat'], result = array1.reduce((r, k) => { r[k] = array2.filter(v => v.includes(k)); return r; }, {}); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

您可以遍历Array1并使用indexOfArray2找到类似的项目。

var result = {};
Array1.forEach(function(item1) {
    result[item1] = Array2.filter(function(item2) { return item2.indexOf(item1) > -1; });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM