Mia*_*mad 9 javascript higher-order-functions lodash
我有两个这样的对象:
let obj1 = { slotIDs: ["5e0301f353ee2a0546298f15"] }
let obj2 = { slotIDs: ["5e0301f353ee2a0546298f15", "5e03050453ee2a0546298f1c"] }
Run Code Online (Sandbox Code Playgroud)
我需要像这样将它们合并到一个数组中
let newObj = ["5e0301f353ee2a0546298f15", "5e03050453ee2a0546298f1c"]
Run Code Online (Sandbox Code Playgroud)
我试过使用 lodash union 和 map 但没有运气。
Huỳ*_*yễn 15
一行代码解决:
let obj1 = { slotIDs: ['5e0301f353ee2a0546298f15'] }
let obj2 = { slotIDs: ['5e0301f353ee2a0546298f15', '5e03050453ee2a0546298f1c'] }
const result = [...new Set([...obj1.slotIDs, ...obj2.slotIDs])]
console.log(result)Run Code Online (Sandbox Code Playgroud)
使用 Vanilla JS,您可以迭代Array.flatMap()并返回slotIDs以获取 id 数组。要删除重复项,请从数组中创建一个 Set,然后将 Set 传播回数组:
const obj1 = { slotIDs: ['5e0301f353ee2a0546298f15'] }
const obj2 = { slotIDs: ['5e0301f353ee2a0546298f15', '5e03050453ee2a0546298f1c'] }
const result = [...new Set([obj1, obj2].flatMap(o => o.slotIDs))]
console.log(result)Run Code Online (Sandbox Code Playgroud)
使用 lodash,您可以迭代_.flatMap()并slotIDs获取 id 数组。用于_.uniq()删除重复项:
const obj1 = { slotIDs: ['5e0301f353ee2a0546298f15'] }
const obj2 = { slotIDs: ['5e0301f353ee2a0546298f15', '5e03050453ee2a0546298f1c'] }
const result = _.uniq(_.flatMap([obj1, obj2], 'slotIDs'))
console.log(result)Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
210 次 |
| 最近记录: |