Javascript 从两个数组中查找相同的数字

Javascript 从两个数组中查找相同的数字,javascript,Javascript,大家好,请帮我用函数从两个数组中获取相同的数字 function getIntersect(arrF, arrS){ var arrF = [ 3, 5, 8]; var arrS = [1, 2, 3, 5, 8]; var nums = []; for ( var i = 0; i < arrF.length; i++ ){ for ( var j = 0; j < arrS.length; j++ ){

大家好,请帮我用函数从两个数组中获取相同的数字

function getIntersect(arrF, arrS){


    var arrF = [ 3, 5, 8];
    var arrS = [1, 2, 3, 5, 8];
    var nums = [];

    for ( var i = 0; i < arrF.length; i++ ){
        for ( var j = 0; j < arrS.length; j++ ){
             if ( i == j ){
                nums.push(i);
                nums.push(j);
                return nums;
             }
        }
    }
}

document.write(getIntersect());
var arr1 = [1,2,3,4,5,6,7];
var arr2 = [5,6,7];

var arr3 = arr1.filter(function(item) { return arr2.indexOf(item) !== -1; }); 
console.log(arr3);
函数getIntersect(arrF,arrS){ var-arrF=[3,5,8]; var-arrS=[1,2,3,5,8]; var nums=[]; 对于(变量i=0;i您可以使用数组
includes()
来检查第一个数组(
arrF
)中的元素是否存在于第二个数组(
arrS
)中

由于您正在编写函数(
getIntersect()
),因此可以在函数外部声明输入数组,并在调用函数时传递这些数组。这样,您就可以对任何其他输入集重用该函数

var arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
函数getIntersect(arrF,arrS){
var nums=[];
对于(变量i=0;ilog(getIntersect())
您可以使用数组
includes()
来检查第一个数组(
arrF
)中的元素是否存在于第二个数组(
arrS
)中

由于您正在编写函数(
getIntersect()
),因此可以在函数外部声明输入数组,并在调用函数时传递这些数组。这样,您就可以对任何其他输入集重用该函数

var arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
函数getIntersect(arrF,arrS){
var nums=[];
对于(变量i=0;ilog(getIntersect())您可以使用
过滤器
获得更简单的代码

函数getIntersect(arrF,arrS){ 返回arrF.filter(o=>arrS.includes(o)); } var-arrF=[3,5,8]; var-arrS=[1,2,3,5,8]; var结果=getIntersect(arrF,arrS);
控制台日志(结果)您可以使用
过滤器
获得更简单的代码

函数getIntersect(arrF,arrS){ 返回arrF.filter(o=>arrS.includes(o)); } var-arrF=[3,5,8]; var-arrS=[1,2,3,5,8]; var结果=getIntersect(arrF,arrS);
控制台日志(结果)以下是更新的代码,有两个更新:

  • 在函数中添加了参数
  • 将return语句置于
    for
    循环的外部
  • 比较值而不是索引
  • 不要同时按下两个值,而是只按下一个(因为它们是相同的)
var arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
var nums=[];
函数getIntersect(arrF,arrS){
对于(变量i=0;i编写(getIntersect(arrF,arrS))以下是更新的代码,有两个更新:

  • 在函数中添加了参数
  • 将return语句置于
    for
    循环的外部
  • 比较值而不是索引
  • 不要同时按下两个值,而是只按下一个(因为它们是相同的)
var arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
var nums=[];
函数getIntersect(arrF,arrS){
对于(变量i=0;i编写(getIntersect(arrF,arrS))
只需使用JavaScript中数组对象上可用的
reduce
函数,就可以获得预期的结果

function getIntersect(arrF, arrS){
    return arrF.reduce((p, c) => {
        if(arrS.indexOf(c) !== -1) {
            p.push(c);
        }
        return p;
    }, [])
}

//invoke helper function
getIntersect([3,5,8], [1, 2, 3, 5, 8])

//output
// [3, 5, 8]

只需使用JavaScript中数组对象上可用的
reduce
函数,就可以获得预期的结果

function getIntersect(arrF, arrS){
    return arrF.reduce((p, c) => {
        if(arrS.indexOf(c) !== -1) {
            p.push(c);
        }
        return p;
    }, [])
}

//invoke helper function
getIntersect([3,5,8], [1, 2, 3, 5, 8])

//output
// [3, 5, 8]
函数getIntersect(arrF,arrS){ var-arrF=[3,5,8]; var-arrS=[1,2,3,5,8]; var nums=[]; 对于(变量i=0;i
函数getIntersect(arrF,arrS){
var-arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
var nums=[];
对于(变量i=0;i
您可以使用哈希表的帮助,将值作为键,并将属性设置为
true

对第一个数组执行此操作,对于第二个数组,检查是否设置了属性,然后将值作为结果

函数getIntersect(a,b){ var hash={}, 我 结果=[]; 对于(i=0;ilog(getIntersect([3,5,8],[1,2,3,5,8])
您可以使用哈希表的帮助,在该哈希表中,您将值作为键,并将属性设置为
true

对第一个数组执行此操作,对于第二个数组,检查是否设置了属性,然后将值作为结果

函数getIntersect(a,b){ var hash={}, 我 结果=[]; 对于(i=0;ivar arr1 = [1,2,3,4,5,6,7]; var arr2 = [5,6,7]; var arr3 = arr1.filter(function(item) { return arr2.indexOf(item) !== -1; }); console.log(arr3);