怎么判断两个数组有相同的数据

一个数组["13096399408"],两一个数组["13096399408", "13096399542"]
怎么判断两个数组有相同的数据13096399408?

哪位大佬帮下,谢谢

阅读 24k
8 个回答

ES6
let isin = ["13096399408", "13096399542"].includes("13096399408")
console.log(isin)

其实这个问题可以扩展一下,
假如说,我有两个 数组1 [1,2,3,5,8,9] , 数组2 [1,3,5],我怎么判断 数组1是否包含数组2所有的值呢
可以用

let arr1 = [1,2,3,5,8,9]
let arr2= [1,3,5]

let res = arr2.every((x)=>{
  return arr1.includes(x)
})

console.log(res) //true

还有,如果是要取相同的部分,比如说 [1,3,5,7],和 [1,2,3,5,8,9] 有 1,3,5三个值是相同的,我要取两个数组的交集

let arr1 = [1,2,3,5,8,9]
let arr2= [1,3,5,7]

let res1 = arr2.filter((x)=>{
  return arr1.includes(x)
})

console.log(res1)
//[1,3,5]
let a = ["13096399408"]
let b = ["13096399408", "13096399542"]
let isRepeated = a.length + b.length !== new Set(...a, ...b) // true

可以采用双重遍历,也可以转成集合使用contains方法。

function check(arr1, arr2){
  let result = [];
  let arr = arr1.concat(arr2);
  arr.forEach(function(d,i){
    if(arr.indexOf(d) != i) result.push(d);
  });
  return result;
}

check([1,2,3,4],[8,9,7,2,3,4]);
    var arrA = [1,2];
    var arrB = [1,2,3,4,5];
    var arrC = [111,222];

    function inArr(arr1,arr2){
        for(var i=0;i<arr1.length;i++){
            for(var o=0;o<arr2.length;o++){
                if(arr1[i] == arr2[0]){
                    return true
                }else{
                    return false
                }
            }
        }
    }
    console.log(inArr(arrA,arrB));      //ture
    console.log(inArr(arrC,arrB));      //fale
/**
 * 
 * @desc 判断两个数组是否相等
 * @param {Array} arr1 
 * @param {Array} arr2 
 * @return {Boolean}
 */
function arrayEqual(arr1, arr2) {
    if (arr1 === arr2) return true;
    if (arr1.length != arr2.length) return false;
    for (var i = 0; i < arr1.length; ++i) {
        if (arr1[i] !== arr2[i]) return false;
    }
    return true;
}
新手上路,请多包涵

["13096399408", "13096399542"].filter(item => ["13096399408"].indexOf(item) !== -1)

推荐问题
宣传栏