es6 一个数组对象 一个数组 找出不同
时间: 2024-10-09 21:15:03 浏览: 141
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 获取数组某个key的值
### ES6 JavaScript 获取数组中对象特定 Key 的值
在 ES6 中,有多种方式可以获取数组中对象的特定键对应的值。以下是几种常见的方式:
#### 使用 `map` 方法
可以通过调用数组上的 `map()` 函数来提取每个对象中的指定属性并创建一个新的只包含这些属性值得数组。
```javascript
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];
// 提取所有的名字形成新数组 ["Alice", "Bob", "Charlie"]
const names = users.map(user => user.name);
console.log(names); // 输出:["Alice", "Bob", "Charlie"]
```
这种方法简洁明了,并且利用了箭头函数使得代码更加紧凑[^1]。
#### 利用解构赋值简化访问过程
当只需要读取单个元素时,也可以采用解构的方式来快速获得所需的数据成员。
```javascript
const [{name}] = users;
console.log(name); // 如果users不为空,则输出第一个用户的姓名 Alice
```
对于更复杂的场景下,比如想要找到具有特定条件的对象再取出其某字段的话,还可以先通过过滤器筛选目标项之后再做映射操作。
```javascript
// 假设要找id等于2的那个用户的名字
const foundName = users.find(u => u.id === 2).name;
console.log(foundName); // Bob
```
上述例子展示了如何组合使用不同的迭代工具以及链式调用来实现灵活多变的需求处理逻辑[^2]。
#### 处理不存在的情况
需要注意的是,在实际开发过程中应当考虑到可能遇到的一些异常情况,例如试图访问不存在于任何对象内的key或是尝试在一个空列表上调用`.find().property`可能会抛出错误。因此建议加入必要的边界检查措施以增强程序健壮性。
```javascript
function getPropertyValue(arrayOfObjects, keyToFind){
const result = arrayOfObjects.filter(obj=> obj[keyToFind] !== undefined ).map(item => item[keyToFind]);
return result.length ? result : null ;
}
```
此辅助函数会返回一个由给定键组成的数组;如果没有任何匹配的结果则给出null表示未发现有效数据[^4]。
阅读全文
相关推荐
















