Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

array-merge-by-key

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

array-merge-by-key

Effectively merge arrays of objects into a single array by merging objects with the same key (property).

  • 1.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
6.7K
increased by179.09%
Maintainers
1
Weekly downloads
 
Created
Source

array-merge-by-key

npm License Build Status

Effectively merge arrays of objects into a single array by merging objects with the same key (property). Also use this module to merge objects with the same property value in one array.

This is a micro module, which includes light and well-tested code.

Example

import mergeByKey from "array-merge-by-key";

const array1 = [
    { id: "100500", any: 11, other: "UA", props: "1-1" },
    { id: "100501", any: 22, other: "US", props: "5-9" }, // same id
    { id: "100502", any: 33, other: "EN", props: "1-4" }
];

const array2 = [
    { id: "100501", any: 22, other: "US", props: "9-9" }, // same id
    { id: "100503", any: 44, other: "AU", props: "7-4" }
];

// const arrayN = [...]

const result = mergeByKey("id", array1, array2);

// result is [
//  { id: "100500", any: 11, other: "UA", props: "1-1" },
//  { id: "100501", any: 22, other: "US", props: "9-9" }, // merged
//  { id: "100502", any: 33, other: "EN", props: "1-4" },
//  { id: "100503", any: 44, other: "AU", props: "7-4" }
// ]

Usage

Module array-merge-by-key exports function mergeByKey(key, array1, array2, ...) by default. Module uses Object.assign to merge two objects having the same key (property) value. The assignment is performed from right to left, which means that the most right passed array will have priority over previous ones. The comparison of key values is strict (=== operator). The order of elements in resulting array is the same as they appear in arguments, from left to right, from the first to the last element of arrays. Objects that do not have a key (property) will never be merged with others and will have the same memory reference. The new (merged) objects does not mutate old ones. The new array does not mutate any of passed arrays.

Objects having the same key values in the same array also merge. For example:

mergeByKey("id", [{ id: 1, test: "54" }, { id: 1, test: "76" }])
//  Results with [{ id: 1, test: "76" }]

Licence

MIT © Nikita Savchenko

Keywords

FAQs

Package last updated on 12 Jun 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc