p5.js p5.Table findRow() Método

El método findRow() de p5.Table en p5.js se usa para encontrar la primera fila que contiene el valor dado y devuelve un valor a esa fila. La columna que utiliza el método para buscar la fila se puede especificar como un parámetro. El método solo devuelve la primera fila de las posibles coincidencias, incluso si existen varias coincidencias.

Sintaxis:

findRow( value, column )

Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:

  • valor: Es una string que especifica el valor que debe coincidir.
  • columna: es una string o un número que denota el nombre de la columna o el ID de la columna que se va a buscar.

Los siguientes ejemplos ilustran el método findRow() en p5.js:

Ejemplo 1:

function setup() {
  createCanvas(500, 300);
  textSize(16);
   
  findQueryInput = createInput();
  findQueryInput.position(30, 40);
   
  getColBtn =
    createButton("Get the matching row");
  getColBtn.position(30, 70);
  getColBtn.mouseClicked(getFindResults);
   
  // Create the table
  table = new p5.Table();
   
  // Add two columns
  table.addColumn("name");
  table.addColumn("age");
   
  // Add some rows to the table
  let newRow = table.addRow();
  newRow.setString("name", "Eren");
  newRow.setString("age", 21);
   
  newRow = table.addRow();
  newRow.setString("name", "Marco");
  newRow.setString("age", 27);
   
  newRow = table.addRow();
  newRow.setString("name", "Eren");
  newRow.setString("age", 23);
   
  newRow = table.addRow();
  newRow.setString("name", "Mikasa");
  newRow.setString("age", 23);
   
  showTable();
}
   
function getFindResults() {
  clear();
   
  let findQuery = 
      findQueryInput.value();
   
  // Get the row values
  // using findRow()
  if (findQuery != "") {
   
    // Find the result in
    // the column of 'name' 
    findResults =
      table.findRow(findQuery, 'name');
     
    if (findResults) {
      text("The row that matches the query is",
           20, 120);
   
      // Display the matched value
      text(findResults.arr[0], 20, 140);
      text(findResults.arr[1], 120, 140);
    }
    else text("No Results Found",
              20, 120);
       
  } else {
    text("The query string is empty",
         20, 120);
  }
  text("Enter a string to find it in " +
       "the 'name' column table",
       20, 20);
}
   
function showTable() {
  clear();
   
  // Display the total rows
  // present in the table
  text("There are " + 
       table.getRowCount() + 
       " rows in the table", 20, 120);
   
  for (let r = 0; r < table.getRowCount(); r++)
    for (let c = 0; c < table.getColumnCount(); c++)
      text(table.getString(r, c),
           20 + c * 100,
           140 + r * 20);
   
     text("Enter a string to find it in " +
       "the 'name' column table",
       20, 20);
}

Producción:
findRow-ex1

Ejemplo 2:

function setup() {
  createCanvas(500, 300);
  textSize(16);
   
  findQueryInput = createInput();
  findQueryInput.position(30, 40);
   
  getColBtn =
    createButton("Get the matching row");
  getColBtn.position(30, 70);
  getColBtn.mouseClicked(getFindResults);
   
  // Create the table
  table = new p5.Table();
   
  // Add two columns
  table.addColumn("name");
  table.addColumn("age");
   
  // Add some rows to the table
  let newRow = table.addRow();
  newRow.setString("name", "Sam");
  newRow.setString("age", 23);
   
  newRow = table.addRow();
  newRow.setString("name", "Max");
  newRow.setString("age", 20);
   
  newRow = table.addRow();
  newRow.setString("name", "Ben");
  newRow.setString("age", 17);
   
  newRow = table.addRow();
  newRow.setString("name", "Sam");
  newRow.setString("age", 23);
   
  showTable();
}
   
function getFindResults() {
  clear();
   
  let findQuery = findQueryInput.value();
   
  // Get the row values
  // using findRow()
  if (findQuery != "") {
   
    // Find the result in the
    // column with ID of '1'
    findResults
      = table.findRow(findQuery, 1);
       
    if (findResults) {
      text("The row that matches the query is",
           20, 120);
   
      // Display the matched value
      text(findResults.arr[0], 20, 140);
      text(findResults.arr[1], 120, 140);
    }
    else text("No Results Found", 20, 120);
   
  } else {
    text("The query string is empty", 20, 120);
  }
       
    text("Enter a string to find it " +
         "in the 'age' column table",
         20, 20);
}
   
function showTable() {
  clear();
   
  // Display the total rows present in the table
  text("There are " + 
       table.getRowCount() +
       " rows in the table", 20, 120);
   
  for (let r = 0; r < table.getRowCount(); r++)
    for (let c = 0; c < table.getColumnCount(); c++)
      text(table.getString(r, c),
           20 + c * 100,
           140 + r * 20);
   
      text("Enter a string to find it " + 
           "in the 'age' column table",
           20, 20);
}

Producción:
findRow-ex2

Editor en línea: https://editor.p5js.org/

Configuración del entorno: https://www.geeksforgeeks.org/p5-js-soundfile-object-installation-and-methods/

Referencia: https://p5js.org/reference/#/p5.Table/findRow

Publicación traducida automáticamente

Artículo escrito por sayantanm19 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 *