js中比较两个数组中是不是含有相同的元素,可去重,可删除合并为新数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中比较两个数组中是不是含有相同的元素,可去重,可删除合并为新数组相关的知识,希望对你有一定的参考价值。

参考技术A <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//做比较的两个数组
var array1 = ['a','b','c','d'];//数组1 (所有人)
var array2 = ['a','d'];//数组2 (需要删除的人)

//临时数组存放
var tempArray1 = [];//临时数组1
var tempArray2 = [];//临时数组2

for(var i=0;i<array2.length;i++)
tempArray1[array2[i]]=true;//将数array2 中的元素值作为tempArray1 中的键,值为true;


for(var i=0;i<array1.length;i++)
if(!tempArray1[array1[i]])
tempArray2.push(array1[i]);//过滤array1 中与array2 相同的元素;


console.log(tempArray2)
const arrAll = [

name: 'a',
code: 'aa',
config: false
,

name: 'b',
code: 'bb',
config: true
,

name: 'c',
code: 'cc',
config: false
,

name: 'd',
code: 'dd',
config: false

]
let newarr3 = []
arrAll.map(item =>
array2.map(list =>
if (item.name === list)
newarr3.push(
name: list,
config: true,
code: item.code
)

)
)
console.log('333', newarr3);
let newarr4 = []
arrAll.map(item =>
tempArray2.map(list =>
if (item.name === list)
newarr4.push(
name: list,
config: false,
code: item.code
)

)
)
console.log('444', newarr4);
console.log('newall', [...newarr3, ...newarr4]);
const newarrAll = [...newarr3, ...newarr4];
const newarr5 = [];
arrAll.map(item =>
newarrAll.map(list =>
if (item.name === list.name)
newarr5.push(
name: item.name,
config: list.config,
code: item.code
)

)
)
console.log('5555', newarr5);

let ques= [
a:2,b:2,
a:2, b:2]
console.log([...new Set(ques.map(e => JSON.stringify(e)))].map(e => JSON.parse(e)))
</script>
</body>
</html>

JS比较两个数组是否相等 是否拥有相同元素

Javascript怎么比较两个数组是否相同?
JS怎么比较两个数组是否有完全相同的元素?
Javascript不能直接用==或者===来判断两个数组是否相等,无论是相等还是全等都不行,以下两行JS代码都会返回false

<script type="text/javascript">
        alert([]==[]);
        alert([]===[]);
</script>

要判断JS中的两个数组是否相同,需要先将数组转换为字符串,再作比较。以下两行代码将返回true

<script type="text/javascript">
        alert([].toString()== [].toString());
        alert([].toString()===[].toString());
</script>

JS要比较两个数组是否有相同的元素,即两个数组所有元素都相同,但元素的顺序不一定一致。只就需要先将数组进行排序,再比较两个数组是否相等。
试比较以下两行代码:

<script type="text/javascript">
        alert([1,2,3].toString()== [3,2,1].toString());
        alert([1,2,3].sort().toString()== [3,2,1].sort().toString());
</script>

以上是关于js中比较两个数组中是不是含有相同的元素,可去重,可删除合并为新数组的主要内容,如果未能解决你的问题,请参考以下文章

关于如何去除数组中重复项

JS 比较两个数组是不是相等 是不是拥有相同元素

js数组去重的两种方法

php如何查找数组中是不是含有某个元素?

请教如何比较两个hash是不是相同

js数组如何去重?