Javascript check数组包含另一个数组的每个元素
如何将一个数组中的每个元素检查到另一个数组中?这里array2包含array1的每个元素 代码:Javascript check数组包含另一个数组的每个元素,javascript,Javascript,如何将一个数组中的每个元素检查到另一个数组中?这里array2包含array1的每个元素 代码: function find(a, b) { var ai=0, bi=0; var result = []; while( ai < a.length && bi < b.length ) { if (a[ai] < b[bi] ){ ai++; } else if (a[ai] > b[bi] ){ bi
function find(a, b) {
var ai=0, bi=0;
var result = [];
while( ai < a.length && bi < b.length )
{
if (a[ai] < b[bi] ){ ai++; }
else if (a[ai] > b[bi] ){ bi++; }
else /* they're equal */
{
result.push(a[ai]);
ai++;
bi++;
}
}
if(JSON.stringify(a)==JSON.stringify(result)){
return true;
}else if(JSON.stringify(b)==JSON.stringify(result)){
return true;
}else{
return false;
}
// return result;
}
var array1 = ["Area", "Code", "Date", "Invoice Amt", "Invoice No", "Party Address", "Party Name", "Pincode"];
var array2 = ["Area", "Code", "Date", "Invoice Amt", "Invoice No", "Name", "Party Address ", "Party Name", "Pincode"];
console.log(find(array1, array2)); //returns false
console.log(find(array2, array1)); // return false
函数查找(a、b){
var-ai=0,bi=0;
var结果=[];
while(aib[bi]){bi++;}
else/*他们是平等的*/
{
结果:推(a[ai]);
ai++;
bi++;
}
}
if(JSON.stringify(a)=JSON.stringify(结果)){
返回true;
}else if(JSON.stringify(b)=JSON.stringify(结果)){
返回true;
}否则{
返回false;
}
//返回结果;
}
var array1=[“区域”、“代码”、“日期”、“发票金额”、“发票编号”、“当事人地址”、“当事人名称”、“Pincode”];
var array2=[“区域”、“代码”、“日期”、“发票金额”、“发票编号”、“名称”、“当事人地址”、“当事人名称”、“Pincode”];
console.log(find(array1,array2))//返回false
console.log(查找(array2,array1));//返回错误
如果要逐个检查每个值,可以使用map
和includes
检查数组是否包含来自数组1的任何值
var array1=[“区域”、“代码”、“日期”、“发票金额”、“发票编号”、“参与方地址”、“参与方名称”、“Pincode”];
var array2=[“区域”、“代码”、“日期”、“发票金额”、“发票编号”、“名称”、“当事人地址”、“当事人名称”、“Pincode”];
array1.map(x=>console.log(array2.includes(x))
如果要逐个检查每个值,可以使用map
和includes
检查数组是否包含来自array1的任何值
var array1=[“区域”、“代码”、“日期”、“发票金额”、“发票编号”、“参与方地址”、“参与方名称”、“Pincode”];
var array2=[“区域”、“代码”、“日期”、“发票金额”、“发票编号”、“名称”、“当事人地址”、“当事人名称”、“Pincode”];
array1.map(x=>console.log(array2.includes(x))
您可以使用Array.prototype.includes()
您还可以将includes()
与map()一起使用
您可以使用Array.prototype.includes()
您还可以将includes()
与map()一起使用
字符串末尾包含空格,因此请确保在处理它之前对其进行trim
例如:参与方地址包含空格
函数isSuperset(集合,子集){
for(子集的变量元素){
如果(!set.has(elem)){
返回false;
}
}
返回true;
}
var array1=新设置([“区域”、“代码”、“日期”、“发票金额”、“发票编号”、“参与方地址”、“参与方名称”、“Pincode”])。映射(el=>el.trim());
var array2=新设置([“区域”、“代码”、“日期”、“发票金额”、“发票号”、“名称”、“当事人地址”、“当事人名称”、“Pincode”])。映射(el=>el.trim());
让结果=isSuperset(array2,array1);
控制台日志(结果)代码>字符串末尾包含空格,因此请确保在处理它之前对其进行修剪
例如:参与方地址包含空格
函数isSuperset(集合,子集){
for(子集的变量元素){
如果(!set.has(elem)){
返回false;
}
}
返回true;
}
var array1=新设置([“区域”、“代码”、“日期”、“发票金额”、“发票编号”、“参与方地址”、“参与方名称”、“Pincode”])。映射(el=>el.trim());
var array2=新设置([“区域”、“代码”、“日期”、“发票金额”、“发票号”、“名称”、“当事人地址”、“当事人名称”、“Pincode”])。映射(el=>el.trim());
让结果=isSuperset(array2,array1);
控制台日志(结果)代码>您的意思是如果array1中的valueN存在于array2中?这是否回答了您的问题@佩佩加,是的……有251人不同意你的意见。检查一下什么?这个问题有数百个副本。如果你简单地在谷歌上输入你的问题,你会得到很多重复的问题。你是说array1中的valueN是否存在于array2中?这是否回答了你的问题@佩佩加,是的……有251人不同意你的意见。检查一下什么?这个问题有数百个副本。如果你只是简单地在谷歌上输入你的问题,你会得到很多关于
的重复的——以前被接受的解决方案比那个解决方案有性能优势,因为它会在遇到缺少的元素时退出。尽管您可能会受益于高阶语法的简洁性和快捷方式的灵活性,正如我在下文中所做的那样。对于
-以前接受的解决方案比该解决方案具有性能优势,因为它会在命中缺少的元素时退出。虽然您可能会受益于高阶语法的简洁性和快捷方式的灵活性,正如我在下面所做的那样。
const arr1 = [/* someValues */];
const arr2 = [/* someMoreValues */];
for (let value of arr1) {
if (arr2.includes(value)) {
// do stuff
}
}
arr1.map(x => console.log(arr2.includes(x)));