D3.js | Función d3.bisectRight()

La función bisectRight() es una función integrada en D3.js que acepta un valor como uno de sus parámetros y devuelve el índice para insertar el elemento en una array pasada como otro parámetro para mantener un orden ordenado en un rango específico o en toda la array.

La función considera toda la array mientras encuentra el índice de forma predeterminada, a menos que se especifique un rango pasando inicio y fin como parámetros a la función.

La función binaria busca valor y comprueba si ya existe en el rango. Si se encuentra, se inserta a la derecha de ese elemento.

Sintaxis:

d3.bisectRight(array, value, start, end)

Parámetros: Esta función acepta cuatro parámetros mencionados anteriormente y descritos a continuación:

  • array: este parámetro obligatorio contiene una array de elementos.
  • valor: este también es un parámetro obligatorio que contiene el valor que se insertará en la array.
  • inicio: este es un parámetro opcional que especifica el índice inicial del rango.
  • end: este es un parámetro opcional que especifica el último índice del rango.

Valor de retorno: la función devuelve un único valor entero que indica el índice donde el valor debe insertarse en la array para mantener el orden.

Los siguientes programas ilustran el uso de la función d3.bisectRight() :

Ejemplo 1: Este programa ilustra el uso de d3.bisectRight() pasando solo los dos parámetros obligatorios.

<!DOCTYPE html>
<html>
  
<head>
    <title>D3.js d3.bisectRight() Function</title>
  
    <script src='https://d3js.org/d3.v4.min.js'></script>
</head>
  
<body>
    <script>
        var array = [42, 43, 53, 61, 71, 87, 91];
        var value1 = 63;
        var pos = d3.bisectRight(array, value1);
        document.write(value1 + " needs to be inserted at " 
        + pos + "<br>");
  
        var value2 = 80;
        var pos2 = d3.bisectRight(array, value2);
        document.write(value2 + " needs to be inserted at " 
        + pos2);
    </script>
</body>
  
</html>

Producción:

63 needs to be inserted at 4
80 needs to be inserted at 5

Ejemplo 2: Este programa ilustra el uso de d3.bisectRight() pasando los cuatro parámetros a la función.

<!DOCTYPE html>
<html>
  
<head>
    <title>D3.js d3.bisectRight() Function</title>
  
    <script src='https://d3js.org/d3.v4.min.js'></script>
</head>
  
<body>
    <script>
        var array = [42, 34, 27, 53, 61, 71, 33, 51, 87, 91];
        var value1 = 63;
        var pos = d3.bisectRight(array, value1, 2, 5);
        document.write(value1 + " needs to be inserted at " 
        + pos + "<br>");
  
        var pos2 = d3.bisectRight(array, value1, 6, 9);
        document.write(value1 + " needs to be inserted at " 
        + pos2);
    </script>
</body>
  
</html>

Producción:

63 needs to be inserted at 5
63 needs to be inserted at 8

Ejemplo 3: Este programa ilustra la diferencia entre las funciones d3.bisectRight() y d3.bisectLeft() .

<!DOCTYPE html>
<html>
  
<head>
    <title>
    Difference between d3.bisectRight() 
    and d3.bisectLeft() functions
    </title>
  
    <script src='https://d3js.org/d3.v4.min.js'></script>
</head>
  
<body>
    <script>
        var array = [42, 54, 59, 63, 71, 81, 91];
        var value = 63;
        var pos = d3.bisectLeft(array, value);
        document.write(value + " needs to be inserted at " 
        + pos + "<br>");
  
        var pos2 = d3.bisectRight(array, value);
        document.write(value + " needs to be inserted at " 
        + pos2);
    </script>
</body>
  
</html>                    

Producción:

63 needs to be inserted at 3
63 needs to be inserted at 4

Referencia: https://devdocs.io/d3~5/d3-array#bisectRight

Publicación traducida automáticamente

Artículo escrito por RICHIK BHATTACHARJEE y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *