Skip to content

Hoobbit/dumutils

Repository files navigation

dumutils

some useless utils, with no* bugs! *may contain some bugs

Arrange Array

const fromObjArray = [
  { id: 'or000' },
  { id: 'or001' },
  { id: 'or002' },
  { id: 'or003' }
]

const toObjArray = [
  { id: 'nr002' },
  { id: 'or001' },
  { id: 'nr003' },
  { id: 'nr004' }
]

const compare = (oldObj: any, newObj: any) => {
  return oldObj.id == newObj.id
}

const { add, remove } = arrangeObjArray(fromObjArray, toObjArray, compare)
// add: [ { id: 'nr002' }, { id: 'nr003' }, { id: 'nr004' } ]
// remove: [ { id: 'or000' }, { id: 'or002' }, { id: 'or003' } ]

Left Join Two Array

const leftArray = [
  { id: 'or000', date: '2022', name: 'name-000' },
  { id: 'or001', date: '2021', name: 'name-001' },
  { id: 'or002', date: '2020', name: 'name-002' },
  { id: 'or003', date: '2019', name: 'name-003' },
  { id: 'or004', date: '2018', name: 'name-003' }
]

const rightArray = [
  { id: 'nr002', date: '2022', desc: 'hello' },
  { id: 'or001', date: '2021', desc: 'bye' },
  { id: 'or001', date: '2020', desc: 'hello' },
  { id: 'or002', date: '2019', desc: 'bye' },
  { id: 'or004', date: '2018', desc: 'hello~~' },
  { id: 'or004', date: '2018', desc: 'byeworld~~' }
],

const results = leftJoin(
  leftArray,
  rightArray,
  [
    { leftField: 'id', rightField: 'id' },
    { leftField: 'date', rightField: 'date' }
  ],  // type IRelFields
  true,
  ['id', 'desc']
)

// // results
[
  { id: 'or000', date: '2022', name: 'name-000', desc: null },
  { id: 'or001', date: '2021', name: 'name-001', desc: 'bye' },
  { id: 'or002', date: '2020', name: 'name-002', desc: null },
  { id: 'or003', date: '2019', name: 'name-003', desc: null },
  { id: 'or004', date: '2018', name: 'name-003', desc: 'hello~~' },
  { id: 'or004', date: '2018', name: 'name-003', desc: 'byeworld~~' }
]

Inner Join Two Array

innerJoin(array1, array2, [
  { leftField: 'id', rightField: 'id' },
  { leftField: 'date', rightField: 'date' }
])

Releases

No releases published

Packages

No packages published