基于另一个数组过滤 JavaScript 数组
在本文中,我们将学习如何在 JavaScript 中基于另一个数组过滤数组。
JavaScript 中的数组用于存储不同的元素。这些元素存储在连续的内存位置。通过使用索引号,我们可以访问数组中存在的任何或每个数据元素。索引号从 0 开始。
语法
以下是 JavaScript 中数组的语法:
const array_name = [item1, item2, ...];
以下是 JavaScript 中数组的简单声明:
Const colors = ['Blue', 'Limegreen', 'Orange', 'Black'];
让我们假设一些简单的输入和输出场景:
让我们假设一个场景,我们有两个数组包含其中的元素,并且两个数组中有一些公共元素。我们需要过滤公共元素。
Input arr1 = [1, 3, 7, 10]; arr2 = [3, 7]; Output = [1, 10];
考虑另一个场景,两个数组中都有公共元素(字符串),过滤公共字符串并返回唯一元素。
Input arr1 = ['ravi', 'kunal', 'hari']; arr2 = ['ravi', 'sharma']; Output arr1 = ['kunal', 'hari'] arr2 = ['sharma']
使用 array.filter() 方法
filter() 方法使用函数指定的测试生成一个包含通过测试的元素的新数组。对于空元素,filter() 方法不执行函数。
示例
以下是使用 array.filter() 方法基于另一个数组过滤数组的示例。
<!DOCTYPE html>
<html>
<head>
<title>Filtering array on another array</title>
</head>
<body>
<script>
const array1 = [1, 3, 7, 10, 17, 18, 33, 45, 99];
const array2 = [10, 17, 33];
const filterArray = (array1, array2) => {
const filtered = array1.filter(el => {
return array2.indexOf(el) === -1;
});
return filtered;
};
document.write(filterArray(array1, array2));
</script>
</body>
</html>
示例
以下是使用 filter() 方法执行给定任务的另一个示例。
<!DOCTYPE html>
<html>
<head>
<title>Filtering array on another array</title>
</head>
<body>
<script>
var arr = [6, 1, 9, 4, 7].filter(
function(e) {
return this.indexOf(e) < 0;
},
[1, 4, 7]
);
document.write("Filtered array is: ", arr);
</script>
</body>
</html>
示例
下面的程序是使用 filter() 方法解决任务的另一种方法:
<!DOCTYPE html>
<html>
<head>
<title>Filtering array on another array</title>
</head>
<body>
<script>
let arr1 = ['Govind', 'Alekhya', 'Sarika', 'Raviteja', 'Pooja'];
let arr2 = ['Alekhya', 'Pooja'];
arr1 = arr1.filter(function(item) {
return !arr2.includes(item);
})
document.write(arr1);
</script>
</body>
</html>
示例
以下是使用 filter() 方法和 includes() 方法解决任务的另一种方法。
<!DOCTYPE html>
<html>
<head>
<title>Filtering array on another array</title>
</head>
<body>
<script>
function filter_array(){
let arr1 = ['s', 'r', 'a', 'k', 'i'];
let arr2 = ['n', 's', 'k'];
var tempArray = arr2.filter(function(item) {
return !arr1.includes(item);
});
arr1 = arr1.filter(function(item) {
return !arr2.includes(item);
});
arr2 = tempArray;
document.write(arr1, "<br>");
document.write(arr2);
}
filter_array();
</script>
</body>
</html>
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP