You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
4.4 KiB

4 years ago
  1. # arr-diff [![NPM version](https://img.shields.io/npm/v/arr-diff.svg?style=flat)](https://www.npmjs.com/package/arr-diff) [![NPM monthly downloads](https://img.shields.io/npm/dm/arr-diff.svg?style=flat)](https://npmjs.org/package/arr-diff) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/arr-diff.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/arr-diff)
  2. > Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.
  3. ## Install
  4. Install with [npm](https://www.npmjs.com/):
  5. ```sh
  6. $ npm install --save arr-diff
  7. ```
  8. Install with [yarn](https://yarnpkg.com):
  9. ```sh
  10. $ yarn add arr-diff
  11. ```
  12. Install with [bower](https://bower.io/)
  13. ```sh
  14. $ bower install arr-diff --save
  15. ```
  16. ## Usage
  17. Returns the difference between the first array and additional arrays.
  18. ```js
  19. var diff = require('arr-diff');
  20. var a = ['a', 'b', 'c', 'd'];
  21. var b = ['b', 'c'];
  22. console.log(diff(a, b))
  23. //=> ['a', 'd']
  24. ```
  25. ## Benchmarks
  26. This library versus [array-differ](https://github.com/sindresorhus/array-differ), on April 14, 2017:
  27. ```
  28. Benchmarking: (4 of 4)
  29. · long-dupes
  30. · long
  31. · med
  32. · short
  33. # benchmark/fixtures/long-dupes.js (100804 bytes)
  34. arr-diff-3.0.0 x 822 ops/sec ±0.67% (86 runs sampled)
  35. arr-diff-4.0.0 x 2,141 ops/sec ±0.42% (89 runs sampled)
  36. array-differ x 708 ops/sec ±0.70% (89 runs sampled)
  37. fastest is arr-diff-4.0.0
  38. # benchmark/fixtures/long.js (94529 bytes)
  39. arr-diff-3.0.0 x 882 ops/sec ±0.60% (87 runs sampled)
  40. arr-diff-4.0.0 x 2,329 ops/sec ±0.97% (83 runs sampled)
  41. array-differ x 769 ops/sec ±0.61% (90 runs sampled)
  42. fastest is arr-diff-4.0.0
  43. # benchmark/fixtures/med.js (708 bytes)
  44. arr-diff-3.0.0 x 856,150 ops/sec ±0.42% (89 runs sampled)
  45. arr-diff-4.0.0 x 4,665,249 ops/sec ±1.06% (89 runs sampled)
  46. array-differ x 653,888 ops/sec ±1.02% (86 runs sampled)
  47. fastest is arr-diff-4.0.0
  48. # benchmark/fixtures/short.js (60 bytes)
  49. arr-diff-3.0.0 x 3,078,467 ops/sec ±0.77% (93 runs sampled)
  50. arr-diff-4.0.0 x 9,213,296 ops/sec ±0.65% (89 runs sampled)
  51. array-differ x 1,337,051 ops/sec ±0.91% (92 runs sampled)
  52. fastest is arr-diff-4.0.0
  53. ```
  54. ## About
  55. ### Related projects
  56. * [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten "Recursively flatten an array or arrays. This is the fastest implementation of array flatten.")
  57. * [array-filter](https://www.npmjs.com/package/array-filter): Array#filter for older browsers. | [homepage](https://github.com/juliangruber/array-filter "Array#filter for older browsers.")
  58. * [array-intersection](https://www.npmjs.com/package/array-intersection): Return an array with the unique values present in _all_ given arrays using strict equality… [more](https://github.com/jonschlinkert/array-intersection) | [homepage](https://github.com/jonschlinkert/array-intersection "Return an array with the unique values present in _all_ given arrays using strict equality for comparisons.")
  59. ### Contributing
  60. Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
  61. ### Contributors
  62. | **Commits** | **Contributor** |
  63. | --- | --- |
  64. | 33 | [jonschlinkert](https://github.com/jonschlinkert) |
  65. | 2 | [paulmillr](https://github.com/paulmillr) |
  66. ### Building docs
  67. _(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
  68. To generate the readme, run the following command:
  69. ```sh
  70. $ npm install -g verbose/verb#dev verb-generate-readme && verb
  71. ```
  72. ### Running tests
  73. Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
  74. ```sh
  75. $ npm install && npm test
  76. ```
  77. ### Author
  78. **Jon Schlinkert**
  79. * [github/jonschlinkert](https://github.com/jonschlinkert)
  80. * [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
  81. ### License
  82. Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
  83. Released under the [MIT License](LICENSE).
  84. ***
  85. _This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 14, 2017._