如果可以解决以下问题,我将不胜感激
阵列
null
输出必须显示在下面
var arr1 = [1,2,3,4,5];
var arr2 = [0,2,1,3];
var arr3 = [];
arr3 = arr1 (intersection) arr2;
Javascript按钮值如何添加数组?
arr3 = [2];
然后单击按钮,数组索引值的单击按钮将更改为0到1.
答案 0 :(得分:1)
如果我理解正确的要求,这应该可以解决问题:
function matchingElements(arr1, arr2) {
var result = [];
for (var i = 0; i < arr1.length && i < arr2.length; i++) {
if (arr1[i] === arr2[i]) {
result.push(arr1[i]);
}
}
return result;
}
var arr1 = [1, 2, 3, 4, 5];
var arr2 = [0, 2, 1, 2];
var arr3 = matchingElements(arr1, arr2);
console.log(arr3);
// Output:
// [ 2 ]
答案 1 :(得分:0)
试一试:
<html>
<head></head>
<body>
<script>
var arr1 = [1,2,3,4,5];
var arr2 = [0,2,3,3];
var arr3 = [];
function intersection(arr1,arr2){
len = arr1.length < arr2.length ? arr1.length : arr2.length;
for(var i=0 ; i<len; i++)
if(arr1[i]==arr2[i]){
arr3[0] = arr1[i];
break;
}
if(arr3.length > 0)
alert("intersection is : " + arr3[0]);
else
alert("No intersection");
}
intersection(arr1,arr2);
</script>
</body>
</html>
答案 2 :(得分:0)
基于对原始问题的评论,我认为@KoPhyoHtet实际上可能正在尝试计算两组的Jaccard index。在这种情况下,以下代码应该有所帮助。 (它依赖于lodash。)
function jaccard(arr1, arr2) {
return _.intersection(arr1, arr2).length / _.union(arr1, arr2).length;
}
var arr1 = [1, 2, 3, 4, 5];
var arr2 = [0, 2, 1, 3];
// intersection is [1, 2, 3] (length 3)
// union is [0, 1, 2, 3, 4, 5] (length 6)
// Jaccard index should be 3/6 = 0.5
console.log(jaccard(arr1, arr2));
// Output:
// 0.5
答案 3 :(得分:0)
这是最短的版本
const arr1 = [1,2,3,4,5]
const arr2 = [0,2,1,3]
const arr3 = arr1.filter(item => arr2.indexOf(item) > -1)