forEachGraphemeCluster

Invokes a function for each grapheme cluster (i.e., user-perceived character) in a string.

Usage

var forEachGraphemeCluster = require( '@stdlib/string/base/for-each-grapheme-cluster' );

forEachGraphemeCluster( str, clbk[, thisArg ] )

Invokes a function for each grapheme cluster (i.e., user-perceived character) in a string.

function log( value, index ) {
    console.log( '%d: %s', index, value );
}

forEachGraphemeCluster( 'Beep!', log );
/* =>
    0: B
    1: e
    2: e
    3: p
    4: !
*/

The invoked function is provided three arguments:

  • value: grapheme cluster.
  • index: starting grapheme cluster index.
  • str: input string.

To set the function execution context, provide a thisArg.

function clbk() {
    this.count += 1;
}

var str = '👉🏿';

var ctx = {
    'count': 0
};

forEachGraphemeCluster( str, clbk, ctx );

var cnt = ctx.count;
// returns 1

Examples

var forEachGraphemeCluster = require( '@stdlib/string/base/for-each-grapheme-cluster' );

function log( value, index ) {
    console.log( '%d: %s', index, value );
}

forEachGraphemeCluster( 'presidential election', log );
forEachGraphemeCluster( 'Iñtërnâtiônàlizætiøn', log );
forEachGraphemeCluster( '🌷🍕', log );
forEachGraphemeCluster( '\uD834\uDD1E', log );
Did you find this page helpful?