What is sliced?
The 'sliced' npm package is a utility that provides a simple way to slice arrays and array-like objects. It is particularly useful for converting arguments objects into arrays and for slicing arrays in a concise manner.
What are sliced's main functionalities?
Slicing Arrays
This feature allows you to slice an array from a start index to an end index. In this example, the array [1, 2, 3, 4, 5] is sliced from index 1 to index 3, resulting in [2, 3].
const sliced = require('sliced');
const array = [1, 2, 3, 4, 5];
const result = sliced(array, 1, 3);
console.log(result); // Output: [2, 3]
Slicing Arguments Object
This feature is useful for converting the arguments object into an array and slicing it. In this example, the arguments object is sliced from index 1, resulting in [2, 3, 4].
const sliced = require('sliced');
function example() {
const args = sliced(arguments, 1);
console.log(args); // Output: [2, 3, 4]
}
example(1, 2, 3, 4);
Other packages similar to sliced
array-slice
The 'array-slice' package provides similar functionality to 'sliced' by allowing you to slice arrays and array-like objects. It is a lightweight alternative and can be used in the same scenarios where 'sliced' is used.
lodash
Lodash is a popular utility library that provides a wide range of functions for manipulating arrays, objects, and other data types. It includes a 'slice' function that offers similar functionality to 'sliced', but also provides many other utilities, making it a more comprehensive solution.
underscore
Underscore is another utility library that offers a variety of functions for working with arrays, objects, and other data types. It includes a 'rest' function that can be used to slice arrays and array-like objects, similar to 'sliced'.
#sliced
A faster alternative to [].slice.call(arguments)
.
Example output from benchmark.js
Array.prototype.slice.call x 1,401,820 ops/sec ±2.16% (90 runs sampled)
[].slice.call x 1,313,116 ops/sec ±2.04% (96 runs sampled)
cached slice.call x 10,297,910 ops/sec ±1.81% (96 runs sampled)
sliced x 19,906,019 ops/sec ±1.23% (89 runs sampled)
fastest is sliced
Array.prototype.slice.call(arguments, 1) x 1,373,238 ops/sec ±1.84% (95 runs sampled)
[].slice.call(arguments, 1) x 1,395,336 ops/sec ±1.36% (93 runs sampled)
cached slice.call(arguments, 1) x 9,926,018 ops/sec ±1.67% (92 runs sampled)
sliced(arguments, 1) x 20,747,990 ops/sec ±1.16% (93 runs sampled)
fastest is sliced(arguments, 1)
Array.prototype.slice.call(arguments, -1) x 1,319,908 ops/sec ±2.12% (91 runs sampled)
[].slice.call(arguments, -1) x 1,336,170 ops/sec ±1.33% (97 runs sampled)
cached slice.call(arguments, -1) x 10,078,718 ops/sec ±1.21% (98 runs sampled)
sliced(arguments, -1) x 20,471,474 ops/sec ±1.81% (92 runs sampled)
fastest is sliced(arguments, -1)
Array.prototype.slice.call(arguments, -2, -10) x 1,369,246 ops/sec ±1.68% (97 runs sampled)
[].slice.call(arguments, -2, -10) x 1,387,935 ops/sec ±1.70% (95 runs sampled)
cached slice.call(arguments, -2, -10) x 9,593,428 ops/sec ±1.23% (97 runs sampled)
sliced(arguments, -2, -10) x 23,178,931 ops/sec ±1.70% (92 runs sampled)
fastest is sliced(arguments, -2, -10)
Array.prototype.slice.call(arguments, -2, -1) x 1,441,300 ops/sec ±1.26% (98 runs sampled)
[].slice.call(arguments, -2, -1) x 1,410,326 ops/sec ±1.96% (93 runs sampled)
cached slice.call(arguments, -2, -1) x 9,854,419 ops/sec ±1.02% (97 runs sampled)
sliced(arguments, -2, -1) x 22,550,801 ops/sec ±1.86% (91 runs sampled)
fastest is sliced(arguments, -2, -1)
Benchmark source.
##Usage
sliced
accepts the same arguments as Array#slice
so you can easily swap it out.
function zing () {
var slow = [].slice.call(arguments, 1, 8);
var args = slice(arguments, 1, 8);
var slow = Array.prototype.slice.call(arguments);
var args = slice(arguments);
}
install
npm install sliced
LICENSE