写一个数组去重的demo
时间: 2023-11-04 12:14:18 浏览: 53
以下是一个基于ES6的数组去重的示例代码:
```javascript
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = [...new Set(arr)]; //使用Set去重,再转为数组
console.log(uniqueArr); // [1, 2, 3, 4, 5]
```
另外,也可以使用循环遍历的方式进行去重:
```javascript
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = [];
for(let i = 0; i < arr.length; i++) {
if(uniqueArr.indexOf(arr[i]) === -1) { //如果该元素没有出现过
uniqueArr.push(arr[i]); //则将其加入结果数组中
}
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]
```
但是,这种方式的时间复杂度较高,不如使用Set去重。
相关问题
写一个java函数计算重复去重的Demo
好的,以下是一个Java函数计算重复去重的Demo:
```java
public static int[] removeDuplicates(int[] nums) {
if (nums == null || nums.length == 0) {
return new int[0];
}
Arrays.sort(nums);
int len = nums.length;
int index = 0;
for (int i = 1; i < len; i++) {
if (nums[i] != nums[index]) {
index++;
nums[index] = nums[i];
}
}
return Arrays.copyOfRange(nums, 0, index + 1);
}
```
这个函数接受一个整数数组作为参数,返回一个去重后的整数数组。它使用了快速排序算法对数组进行排序,然后遍历数组,将重复的元素去除,最后返回去重后的数组。
airflow dag写一个数组遍历,逐条存DB的demo。
### 回答1:
答:您可以使用Airflow DAG来实现数组遍历逐条存储到数据库的功能,实现方法如下:1. 首先,在DAG中设置一个PythonOperator,用于获取数组的值;2. 然后,使用PythonOperator的for循环遍历数组;3. 接着,利用MySQLOperator将遍历得到的结果逐条写入数据库;4. 最后,使用PythonOperator检查数据库中的数据是否已经正确写入。
### 回答2:
Airflow DAG 可以用来编写定期执行的工作流,即有向无环图。我们可以通过编写DAG 来实现一个数组遍历,逐条将元素存入数据库的例子。
首先,我们需要定义一个Python函数,该函数用于遍历数组并将元素逐条存入数据库。假设数据库使用的是MySQL,并已经建立了名为"my_table" 的表,包含两个列 "id" 和 "data"。
```python
import mysql.connector
def save_to_db(data):
# 建立数据库连接
cnx = mysql.connector.connect(user='your_username', password='your_password', host='your_host', database='your_database')
# 创建游标对象
cursor = cnx.cursor()
for item in data:
# 将每个元素插入数据库
query = "INSERT INTO my_table (data) VALUES (%s)"
cursor.execute(query, (item,))
# 提交更改
cnx.commit()
# 关闭游标和数据库连接
cursor.close()
cnx.close()
```
接下来,我们可以使用 `PythonOperator` 创建一个任务,将该任务添加到DAG,并指定其调度规则。
```python
from datetime import datetime
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
default_args = {
'owner': 'airflow',
'start_date': datetime(2021, 1, 1),
}
def task_function():
data = [1, 2, 3, 4, 5] # 假设要存入数据库的数组
save_to_db(data)
with DAG('array_to_db_dag', schedule_interval='@daily', default_args=default_args) as dag:
task = PythonOperator(
task_id='save_array_to_db_task',
python_callable=task_function,
)
task
```
在这个示例中,我们创建了一个名为 `array_to_db_dag` 的DAG,调度规则为每天执行一次。我们定义了一个名为 `save_array_to_db_task` 的任务,该任务使用了前面定义的函数 `task_function`,利用 `save_to_db(data)` 将数组逐条存入数据库。
最后,我们可以将这个DAG部署到Airflow中运行。DAG 被调度执行后,任务 `save_array_to_db_task` 会遍历数组,并逐条将元素存入数据库中的 "my_table" 表中。
这就是一个使用Airflow DAG 的数组遍历逐条存入数据库的例子。
### 回答3:
Airflow的DAG可以用来定义和调度工作流任务,包含了一系列的任务和它们之间的依赖关系。在这个问题中,我们需要使用Airflow的DAG来编写一个示例,遍历一个数组,并逐条将其存储到数据库中。
首先,我们需要导入所需的库和模块,包括Airflow的DAG模块、Python的Datetime模块、Python的数据库模块(如pymysql)等。
然后,我们可以定义一个函数来将数组中的元素插入数据库中。这个函数可以接受数组和数据库连接作为参数,并通过数据库连接执行插入操作。
接下来,在DAG中,我们可以使用PythonOperator来定义一个可执行的任务,将数组中的元素插入数据库中。我们可以将数组和数据库连接作为参数传递给任务函数,并在任务函数中调用上面定义的函数将元素插入数据库。
然后,我们可以使用Python的for循环来遍历数组,并为每个元素创建一个任务。我们使用遍历出来的元素作为参数,并将其传递给任务函数。
最后,我们可以定义DAG的依赖关系。我们可以通过设置任务之间的依赖关系来确保它们按顺序执行,并将结果存储到数据库中。
在DAG定义的最后,我们需要使用Airflow的默认参数来设置任务的调度时间、重试策略等选项。
这样,我们就可以使用Airflow的DAG来遍历数组,并逐条将其存储到数据库中。我们可以通过Airflow的Web界面来监控和管理这个任务,并查看任务的执行情况和结果。