es6 一个数组对象 一个数组 找出不同
时间: 2024-10-09 16:15:03 浏览: 69
ES6 中,如果你想比较两个数组的不同之处,可以使用 `Set` 对象结合 `Array.from()` 方法来找出它们各自的唯一元素。首先将两个数组转换成 Set,然后取这两个 Set 的差集,就可以得到只存在于其中一个数组中的元素。
例如:
```javascript
function findDifferent(array1, array2) {
const set1 = new Set(array1);
const set2 = new Set(array2);
return [...set1].filter(item => !set2.has(item)).concat([...set2].filter(item => !set1.has(item)));
}
const arr1 = [1, 2, 3, 4];
const arr2 = [3, 4, 5, 6];
console.log(findDifferent(arr1, arr2)); // 输出:[1, 2, 5, 6]
```
这个函数会返回一个新数组,包含的是第一个数组独有的元素以及第二个数组独有的元素。
相关问题
es6 两个数组找出不同
ES6中,可以使用`Set`数据结构或者扩展运算符(`...`)结合`filter()`方法来找出两个数组的不同元素。以下是两种常见方法:
1. 使用`Set`:
```javascript
function findUnique(array1, array2) {
return [...new Set([...array1, ...array2])].filter(item => !array1.includes(item) && !array2.includes(item));
}
let arr1 = [1, 2, 3];
let arr2 = [2, 4, 5];
console.log(findUnique(arr1, arr2)); // 输出:[1, 3, 5]
```
这个函数首先将两个数组合并成一个新的数组,然后创建一个`Set`去除了重复元素,最后过滤出只存在于新数组而不在原始数组中的元素。
2. 扩展运算符和`filter()`:
```javascript
function findUnique(array1, array2) {
return [...array1].filter(item => !array2.includes(item)).concat(...array2).filter(item => !array1.includes(item));
}
arr1 = [1, 2, 3];
arr2 = [2, 4, 5];
console.log(findUnique(arr1, arr2)); // 输出:[1, 3, 5]
```
这里先分别从`array1`中滤除出现在`array2`中的元素,再把剩下的元素与`array2`的所有元素合并,并再次滤除出现在`array1`中的元素。
用es6实现输入一个整数数组 array 和一个目标值 target,找出数组中两个数的和为目标值target的两个数的下标(或索引),将结果存入一个数组(result)并返回该数组。
好的,这个问题可以回答。以下是用 ES6 实现的代码:
```javascript
function findTwoSumIndex(array, target) {
const map = new Map();
for (let i = 0; i < array.length; i++) {
const complement = target - array[i];
if (map.has(complement)) {
return [map.get(complement), i];
}
map.set(array[i], i);
}
return [];
}
const array = [2, 7, 11, 15];
const target = 9;
const result = findTwoSumIndex(array, target);
console.log(result); // [0, 1]
```
该函数使用了哈希表(Map)来判断是否存在目标值的补数,时间复杂度为 O(n)。调用函数时传入整数数组和目标值,返回一个包含两个数的下标的数组。
阅读全文