npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

break-foreach

v1.0.0

Published

This is a method that allows you to stop the iteration of forEach function in ES6+.

Downloads

3

Readme

Choose Language/选择语言

- Document

💡Introduction

Let's Break the forEach Function! 😎

This is a method that allows you to stop the iteration of forEach function in ES6+. No longer need to stop the forEach with a ugly syntax 'try-catch'.

⚙️Feature

  • Return a flag (I call it 'Break Flag' and its default-value is 'false') then stop the iteration of forEach function.
  • General for different type includes Array, Map, Set and normal Object.
  • You can customize the iteration function name (e.g. myForEach), if you want to remain the native forEach function.
  • You can customize the 'Break Flag' you like.
  • Provide a Object the ability to be iterated over.Of course, you can also stop the iteration anytime.

⬇️Installation

npm i break-foreach

Or copy the JavaScript code on https://github.com/xun19/break-foreach

🔨Usage

1)Basic Usage

    const wrapForEach = require('break-foreach')

    const array = [1, 2, -1, 3, 4]
    wrapForEach({ target: array })

    array.forEach((val, index, arr) => {
        if (val < 0) return false // Iteration will stop because you return a Break Flag.
        console.log(val, index, arr)
    })
    // output:
    // 1, 0, [1, 2, -1, 3, 4]
    // 2, 1, [1, 2, -1, 3, 4]
    // Iteration stops on this step.

2)Usage on different Type

    const wrapForEach = require('break-foreach')
    
    /* Array */
    const array = [1, 2, -1, 3, 4]
    wrapForEach({ target: array })

    array.forEach((val, index, arr) => {
        if (val < 0) return false // Iteration will stop because you return a Break Flag.
        console.log(val, index, arr)
    })
    // output:
    // 1, 0, [1, 2, -1, 3, 4]
    // 2, 1, [1, 2, -1, 3, 4]
    // Iteration stops on this step.


    /* Set */
    const set = new Set([1, 2, -1, 3])
    wrapForEach({ target: set })

    set.forEach((val, index, s) => {
        if (val < 0) return false // Iteration will stop because you return a Break Flag.
        console.log(val, index, s)
    })
    // output:
    // 1, 0, Set([1, 2, -1, 3])
    // 2, 1, Set([1, 2, -1, 3])
    // Iteration stops on this step.

    
    /* Map */
    const map = new Map([[0, 0], [{}, 1], ['a', -1], ['b', -2]])
    wrapForEach({ target: map })

    map.forEach((val, key, m) => {
        if (val < 0) return false // Iteration will stop because you return a Break Flag.
        console.log(val, key, m)
    })
    // output:
    // 1, 0, Map([[0, 0], [{}, 1], ['a', -1], ['b', -2]])
    // 2, {}, Map([[0, 0], [{}, 1], ['a', -1], ['b', -2]])
    // Iteration stops on this step.


    /* Object */
    const obj = {a: 1, b: 2, c: -1, d: 3}
    wrapForEach({ target: obj })

    obj.forEach((val, key, o) => {
        if (val < 0) return false // Iteration will stop because you return a Break Flag.
        console.log(val, key, o)
    })
    // output:
    // 1, 'a', {a: 1, b: 2, c: -1, d: 3}
    // 2, 'b', {a: 1, b: 2, c: -1, d: 3}
    // Iteration stops on this step.

3)Customize your Break Flag

    const wrapForEach = require('break-foreach')
    
    const array = [1, 2, -1, 3, 4]
    const BREAK = 'my break flag' // It can be any Type.
    wrapForEach({ 
        target: array,
        flag: BREAK
     })

    array.myForEach((val, index, arr) => {
        if (val < 0) return BREAK // return your Break Flag here.
        console.log(val, index, arr)
    })
    // output:
    // 1, 0, [1, 2, -1, 3, 4]
    // 2, 1, [1, 2, -1, 3, 4]
    // Iteration stops on this step.

4)Customize your iteration function name

    const wrapForEach = require('break-foreach')

    const array = [1, 2, -1, 3, 4]
    wrapForEach({ 
        target: array,
        funcName: 'myForEach'
     })

    array.myForEach((val, index, arr) => {
        if (val < 0) return false // Iteration will stop because you return a Break Flag.
        console.log(val, index, arr)
    })
    // output:
    // 1, 0, [1, 2, -1, 3, 4]
    // 2, 1, [1, 2, -1, 3, 4]
    // Iteration stops on this step.

    array.forEach === Array.prototype.forEach // true. Native forEach function will be remained

🌟github

https://github.com/xun19/break-foreach

If you think this component has brought you help, welcome to star and provide valuable advice ~ 😊

- 文档

💡介绍

来把forEach函数break掉吧! 😎

这个模块能让你停止一个forEach函数的遍历,适用于ES6+。你可以不再用“try-catch”的写法去实现这个功能。

⚙️功能

  • 返回一个flag值(若没有设置,则默认是false),来让forEach函数停止遍历
  • 适用于不同的类型,包括Array、Map、Set、普通Object
  • 如果你想保留原生的forEach方法,可以自定义遍历函数的名字,比如命名为myForEach
  • 可以自定义停止遍历的flag值
  • 提供了让普通Object被遍历(当然也能随时停止它)的能力

⬇️安装

npm i break-foreach

Or copy the JavaScript code on https://github.com/xun19/break-foreach

🔨使用

1)基本使用

    const wrapForEach = require('break-foreach')

    const array = [1, 2, -1, 3, 4]
    wrapForEach({ target: array })

    array.forEach((val, index, arr) => {
        if (val < 0) return false // 返回了一个flag,遍历将会停止
        console.log(val, index, arr)
    })
    // output:
    // 1, 0, [1, 2, -1, 3, 4]
    // 2, 1, [1, 2, -1, 3, 4]
    // 遍历会在这一步停止

2)对不同类型进行使用

    const wrapForEach = require('break-foreach')
    
    /* Array */
    const array = [1, 2, -1, 3, 4]
    wrapForEach({ target: array })

    array.forEach((val, index, arr) => {
        if (val < 0) return false // 返回了一个flag,遍历将会停止
        console.log(val, index, arr)
    })
    // output:
    // 1, 0, [1, 2, -1, 3, 4]
    // 2, 1, [1, 2, -1, 3, 4]
    // 遍历会在这一步停止


    /* Set */
    const set = new Set([1, 2, -1, 3])
    wrapForEach({ target: set })

    set.forEach((val, index, s) => {
        if (val < 0) return false // 返回了一个flag,遍历将会停止
        console.log(val, index, s)
    })
    // output:
    // 1, 0, Set([1, 2, -1, 3])
    // 2, 1, Set([1, 2, -1, 3])
    // 遍历会在这一步停止

    
    /* Map */
    const map = new Map([[0, 0], [{}, 1], ['a', -1], ['b', -2]])
    wrapForEach({ target: map })

    map.forEach((val, key, m) => {
        if (val < 0) return false // 返回了一个flag,遍历将会停止
        console.log(val, key, m)
    })
    // output:
    // 1, 0, Map([[0, 0], [{}, 1], ['a', -1], ['b', -2]])
    // 2, {}, Map([[0, 0], [{}, 1], ['a', -1], ['b', -2]])
    // 遍历会在这一步停止


    /* Object */
    const obj = {a: 1, b: 2, c: -1, d: 3}
    wrapForEach({ target: obj })

    obj.forEach((val, key, o) => {
        if (val < 0) return false // 返回了一个flag,遍历将会停止
        console.log(val, key, o)
    })
    // output:
    // 1, 'a', {a: 1, b: 2, c: -1, d: 3}
    // 2, 'b', {a: 1, b: 2, c: -1, d: 3}
    // 遍历会在这一步停止

3)自定义停止遍历的flag值

    const wrapForEach = require('break-foreach')
    
    const array = [1, 2, -1, 3, 4]
    const BREAK = 'my break flag' // flag可以是任意类型
    wrapForEach({ 
        target: array,
        flag: BREAK
     })

    array.myForEach((val, index, arr) => {
        if (val < 0) return BREAK // 在这里返回你的flag
        console.log(val, index, arr)
    })
    // output:
    // 1, 0, [1, 2, -1, 3, 4]
    // 2, 1, [1, 2, -1, 3, 4]
    // 遍历会在这一步停止

4)自定义遍历函数名

    const wrapForEach = require('break-foreach')

    const array = [1, 2, -1, 3, 4]
    wrapForEach({ 
        target: array,
        funcName: 'myForEach'
     })

    array.myForEach((val, index, arr) => {
        if (val < 0) return false // 返回了一个flag,遍历将会停止
        console.log(val, index, arr)
    })
    // output:
    // 1, 0, [1, 2, -1, 3, 4]
    // 2, 1, [1, 2, -1, 3, 4]
    // 遍历会在这一步停止

    array.forEach === Array.prototype.forEach // true. 原生的forEach函数将会继续保留

🌟github

https://github.com/xun19/break-foreach

If you think this component has brought you help, welcome to star and provide valuable advice ~ 😊