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

circularr

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

circularr

Circular fixed size array

  • 0.1.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
66K
decreased by-10.33%
Maintainers
1
Weekly downloads
 
Created
Source

Circularr

Circular fixed size array

Install

npm i circularr

Usage

import Circularr from 'circularr'

// Create from
const arrFrom = Circularr.from([1, 2, 3, 4, 5])

// Create new with fixed size
const arr = new Circular(3) // [undefined, undefined, undefined]

// fill using value
arr.fill(0)   // [0, 0, 0]

// shift in some values
arr.shift(16) // [0, 0, 16]
arr.shift(32) // [0, 16, 32]

// check contents
console.log(...arr) // undefined, 16, 32 

Api

class Circularr<T> {

  // create Circularr
  constructor(length: number)
  static from<T>(source: T[]): Circularr<T>
  
  // property
  readonly length: number
  
  // iterable
  [Symbol.iterator](): IterableIterator<T>
  
  // methods
  fill(value: T): this
  shift(value: T): T
  unshift(value: T): T
}
Fill

fill(value: T): this

Fills the array using value, effectively resetting it. Returns this.

const circularr = new Circularr(3) // [undefined, undefined, undefined]

circularr.fill(0) // [0, 0, 0]
Shift

shift(value: T): T

shift method pushes the value to the end of the array, wherein the first value gets popped out and returned.

const circularr = new Circularr(3).fill(0)

circularr.shift(8)   // [0, 0, 8] => 0
circularr.shift(16)  // [0, 8, 16] => 0
circularr.shift(32)  // [8, 16, 32] => 0
circularr.shift(64)  // [16, 32, 64] => 8
circularr.length     // 3
Unshift

unshift(value: T): T

unshift does the opposite. It pushes the value to the front, popping the last value out.

const circularr = new Circularr(3).fill(0)

circularr.unshift(8)   // [8, 0, 0] => 0
circularr.unshift(16)  // [16, 8, 0] => 0
circularr.unshift(32)  // [32, 16, 8] => 0
circularr.unshift(64)  // [64, 32, 16] => 8
circularr.length       // 3
Iterable

Circular implements iterable protocol, so it can be used with any standard iterable syntax

const circularr = Circularr.from([1, 2, 3])

// array destructuring
const [firstValue] = circularr

// destructuring copy
const copyToArray = [...circularr]

// for..of syntax
for (let value of circularr) {
  console.log(value)
}

Keywords

FAQs

Package last updated on 11 Feb 2019

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