js 两数组let arr = [{type: '所有',},{type: 'power_lift',},{type: 'power_jack',},{type: 'power_all',},{type: 'power_lighting',},{type: 'power_newwind',}];let arr_2 = [{key: 'power_lift'},{key: 'power_jack'},{key: 'power_all'},{key: 'power_lighting'},{key: 'power_newwind'},{key: 'power_dianti'},];转换成['power_dianti']
时间: 2023-12-15 10:04:52 浏览: 93
可以通过以下代码实现:
```javascript
const arrKeys = arr.map(item => item.type);
const arr2Keys = arr_2.map(item => item.key);
const diff = arr2Keys.filter(item => !arrKeys.includes(item));
console.log(diff); // ['power_dianti']
```
首先,我们分别将 `arr` 和 `arr_2` 中的对象数组提取出对应的键值组成新的数组 `arrKeys` 和 `arr2Keys`。
然后,使用 `filter` 方法过滤出 `arr2Keys` 中存在但 `arrKeys` 中不存在的元素,即为需要转换出的数组。最后输出即可。
相关问题
js 通过两数组let arr = [{type: '所有',},{type: 'power_lift',},{type: 'power_jack',},{type: 'power_all',},{type: 'power_lighting',},{type: 'power_newwind',}];let arr_2 = [{key: 'power_lift'},{key: 'power_jack'},{key: 'power_all'},{key: 'power_lighting'},{key: 'power_newwind'},{key: 'power_dianti'},];转换成['power_lift','power_jack','power_all','power_lighting','power_newwind']
同样可以使用 Array.prototype.filter() 方法和 Array.prototype.map() 方法来实现两个数组的比较和筛选:
```
let arr = [
{ type: '所有' },
{ type: 'power_lift' },
{ type: 'power_jack' },
{ type: 'power_all' },
{ type: 'power_lighting' },
{ type: 'power_newwind' },
];
let arr_2 = [
{ key: 'power_lift' },
{ key: 'power_jack' },
{ key: 'power_all' },
{ key: 'power_lighting' },
{ key: 'power_newwind' },
{ key: 'power_dianti' },
];
let result = arr.filter(item => arr_2.map(obj => obj.key).includes(item.type)).map(item => item.type).slice(1);
```
这里和之前的方法类似,只是将 arr_2 数组中的每个对象的 key 属性和 arr 数组中的每个对象的 type 属性进行比较,最后得到所需的数组 ['power_lift','power_jack','power_all','power_lighting','power_newwind']。
同样需要注意兼容性问题。
js let arr = [ { type: '所有', }, { type: 'power_lift', }, { type: 'power_jack', }, { type: 'power_all', }, { type: 'power_lighting', }, { type: 'power_newwind', }, ]; let arr_2 = [ { key: '所有', }, { key: 'power_lift', }, { key: 'power_jack', }, { key: 'power_all', }, { key: 'power_lighting', }, { key: 'power_newwind', }, { key: 'power_dianti', }, ];转换成['power_lift','power_jack','power_all','power_lighting','power_newwind',]
可以使用 Array.prototype.map() 方法和箭头函数来将原始数组中的对象中的 type 属性转换成一个新的数组:
```
let arr = [
{ type: '所有' },
{ type: 'power_lift' },
{ type: 'power_jack' },
{ type: 'power_all' },
{ type: 'power_lighting' },
{ type: 'power_newwind' },
];
let result = arr.map(item => item.type).slice(1);
```
这里首先使用 map() 方法将原始数组中的每个对象的 type 属性提取出来,然后使用 slice() 方法去掉提取出来的数组中的第一个元素 '所有',最后得到所需的数组 ['power_lift','power_jack','power_all','power_lighting','power_newwind']。
同样的,可以使用同样的方法将 arr_2 数组中的 key 属性提取出来并转换成一个数组:
```
let arr_2 = [
{ key: '所有' },
{ key: 'power_lift' },
{ key: 'power_jack' },
{ key: 'power_all' },
{ key: 'power_lighting' },
{ key: 'power_newwind' },
{ key: 'power_dianti' },
];
let result_2 = arr_2.map(item => item.key).slice(1);
```
阅读全文