Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
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.
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);
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 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 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'.
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);
// etc
}
npm install sliced
FAQs
A faster Node.js alternative to Array.prototype.slice.call(arguments)
The npm package sliced receives a total of 537,317 weekly downloads. As such, sliced popularity was classified as popular.
We found that sliced demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.