[英]Match similar kind of words from two arrays
我有两个数组。
Array1 = ['cat','dog','elephant','pig']
Array2 = ['cat','scat','pig','spig','bat'].
我需要一个对象,它包含作为Array1
的值的Array1
和作为与键相似的相似词的值。 我尝试使用filter
和indexOf
但它似乎没有用
预期结果:
{
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
并使用indexOf
在Array2
找到类似的项目。
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.