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']
时间: 2023-09-07 15:13:37 浏览: 117
可以使用 Array.prototype.filter() 方法和 Array.prototype.includes() 方法来实现两个数组的比较和筛选:
```
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' },
];
let result = arr.filter(item => arr_2.map(obj => obj.key).includes(item.type)).map(item => item.type).slice(1);
```
这里首先使用 map() 方法将 arr_2 数组中的每个对象的 key 属性提取出来,然后使用 includes() 方法判断 arr 数组中的每个对象的 type 属性是否包含在提取出来的 key 数组中,最后使用 filter() 方法筛选出符合条件的对象,再使用 map() 方法将筛选出的对象的 type 属性提取出来,最后使用 slice() 方法去掉提取出来的数组中的第一个元素 '所有',最终得到所需的数组 ['power_lift','power_jack','power_all','power_lighting','power_newwind']。
注意,这里使用了 map() 和 includes() 方法,需要考虑到兼容性问题,需要在比较浏览器环境和目标用户的浏览器兼容性之后再选择是否使用。
阅读全文