Javascript 如何检查一个数组是否包含可以在另一个数组中找到的元素并存储它们的值

Javascript 如何检查一个数组是否包含可以在另一个数组中找到的元素并存储它们的值,javascript,jquery,Javascript,Jquery,如何检查以下两个对象是否具有匹配的元素? 如果它们有匹配的元素..我想将匹配的元素存储在一个名为var storeHere=[]的空变量中 var one = ["2021-02-25", "2021-02-24", "2021-02-23", "2021-02-22", "2021-02-21", "2021-03-02", "2021-02-11", &

如何检查以下两个对象是否具有匹配的元素? 如果它们有匹配的元素..我想将匹配的元素存储在一个名为
var storeHere=[]
的空变量中

var one = ["2021-02-25", "2021-02-24", "2021-02-23", "2021-02-22", "2021-02-21", "2021-03-02", "2021-02-11", "2021-02-10"];
var two = ["2021-02-25", "2021-02-25", "2021-02-23"];

var storeHere = [];

到目前为止,我成功地匹配了这两个对象,如果存在匹配,则得到true或false,但我还希望将匹配值存储在emtpy变量中

var one = ["2021-02-25", "2021-02-24", "2021-02-23", "2021-02-22", "2021-02-21", "2021-03-02", "2021-02-11", "2021-02-10"];
var two = ["2021-02-25", "2021-02-25", "2021-02-23"];

function ex (alldates, selected) {
    return selected.some(function (v) {
        return alldates.indexOf(v) >= 0;
    });
};
    ex(one, two);
  
你可以这样做

var one = ["2021-02-25", "2021-02-24", "2021-02-23", "2021-02-22", "2021-02-21", "2021-03-02", "2021-02-11", "2021-02-10"];
var two = ["2021-02-25", "2021-02-25", "2021-02-23"]; 
var storeHere = [];


one.forEach(date => {
   if(two.includes(date)) {
       storeHere.push(date);
   }
}
你可以这样做

var one = ["2021-02-25", "2021-02-24", "2021-02-23", "2021-02-22", "2021-02-21", "2021-03-02", "2021-02-11", "2021-02-10"];
var two = ["2021-02-25", "2021-02-25", "2021-02-23"]; 
var storeHere = [];


one.forEach(date => {
   if(two.includes(date)) {
       storeHere.push(date);
   }
}

你有两个选择

您可以使用数组。过滤器:

const one=[
"2021-02-25",
"2021-02-24",
"2021-02-23",
"2021-02-22",
"2021-02-21",
"2021-03-02",
"2021-02-11",
"2021-02-10",
];
常数二=[
"2021-02-25",
"2021-02-25",
"2021-02-23",
];
//如果一个元素分为两部分,则将其包括在内。否则,将其排除在外。
const storeHere=1.filter((日期)=>2.includes(日期))
console.log(storeHere)/['2021-02-25','2021-02-23']
或者您可以将ES6集合与
集合一起使用。has

const one=[
"2021-02-25",
"2021-02-24",
"2021-02-23",
"2021-02-22",
"2021-02-21",
"2021-03-02",
"2021-02-11",
"2021-02-10",
];
常数2=新集合([
"2021-02-25",
"2021-02-25",
"2021-02-23",
]);
//如果一个元素分为两部分,则将其包括在内。否则,将其排除在外。
const storeHere=one.filter((日期)=>two.has(日期))
console.log(storeHere)/['2021-02-25','2021-02-23']

集合的优点是速度更快,因为它只包含唯一的元素(如果存在任何重复的元素)。但是,差异可能很小,因为两种解决方案基本上是相同的。

您有两种选择

您可以使用数组。过滤器:

const one=[
"2021-02-25",
"2021-02-24",
"2021-02-23",
"2021-02-22",
"2021-02-21",
"2021-03-02",
"2021-02-11",
"2021-02-10",
];
常数二=[
"2021-02-25",
"2021-02-25",
"2021-02-23",
];
//如果一个元素分为两部分,则将其包括在内。否则,将其排除在外。
const storeHere=1.filter((日期)=>2.includes(日期))
console.log(storeHere)/['2021-02-25','2021-02-23']
或者您可以将ES6集合与
集合一起使用。has

const one=[
"2021-02-25",
"2021-02-24",
"2021-02-23",
"2021-02-22",
"2021-02-21",
"2021-03-02",
"2021-02-11",
"2021-02-10",
];
常数2=新集合([
"2021-02-25",
"2021-02-25",
"2021-02-23",
]);
//如果一个元素分为两部分,则将其包括在内。否则,将其排除在外。
const storeHere=one.filter((日期)=>two.has(日期))
console.log(storeHere)/['2021-02-25','2021-02-23']
集合的优点是速度更快,因为它只包含唯一的元素(如果存在任何重复的元素)。然而,差异可能很小,因为两种解决方案基本上是相同的