如何比较具有相同值的两个数组并将相同的值存储在新数组中?

时间:2016-03-15 15:34:55

标签: javascript jquery arrays

我尝试过类似的事情:

var diff = $(array1).not(array2).get();
console.log(diff); // store the difference

.not()替换为.is(),但这不起作用..它产生错误。它只存储差异,但我只希望存储在新数组中的相同值。我怎么在jQuery中做到这一点,不管它是否在两个数组中都是长度大小?

var array1 = ['a','b','c','d','e','f','g'];
var array2 = ['c', 'b'];
var sameValArr = [];

// TODO:
// 1. compare the two arrays if there's any matching values in both
// 2. if yes, store the matching value in a new array; if no, do nothing
// 3. check the new array if it isn't empty 
// 4. if empty, hide the video; if not empty do nothing (show video)

    for(var i = 0; i < array1.length; i++)
    {
        for(var j = 0; j < array2.length; j++)
        {
            if(array1.indexOf([i]) === array2.indexOf([j]))
            {
               sameValArr.push(array1[i]);
                console.log("sameValArr: ", sameValArr);
            }      
        }
    }

使用indexOf()方法为此问题提供的答案无效。

1 个答案:

答案 0 :(得分:0)

for(var i=0; i< array1.length; i++)
{
    for(var j=0; j< array2.length; j++)
    {
        if(array1[i] === array2[j])
            sameValArr.push(array1[i]);
    }
{