Open In App

p5.Table matchRow() Method

The matchRow() method of p5.Table in p5.js is used to find the first row that matches the given regular expression and returns a reference to that row. The column that the method uses to search the row can be specified as a parameter. The method only returns the first row of the possible matches even if multiple matches of the regular expression exist.

Syntax:



matchRow( regexp, column )

Parameters: This method accepts two parameters as mentioned above and described below:

Return Value: This method returns a p5.TableRow object which matches the given regular expression.



The example below illustrates the match Row() method in p5.js:

Example:




function setup() {
  createCanvas(500, 300);
  textSize(16);
  
  matchQueryInput = createInput();
  matchQueryInput.position(30, 40);
  
  getColBtn =
    createButton("Get the matching row");
  getColBtn.position(30, 70);
  getColBtn.mouseClicked(getMatchResults);
  
  // Create the table
  table = new p5.Table();
  
  // Add two columns
  table.addColumn("name");
  table.addColumn("id");
  
  // Add some rows to the table
  let newRow = table.addRow();
  newRow.setString("name", "mary");
  newRow.setString("id", 21);
  
  newRow = table.addRow();
  newRow.setString("name", "marco6");
  newRow.setString("id", 27);
  
  newRow = table.addRow();
  newRow.setString("name", "tunisia 4");
  newRow.setString("id", 32);
  
  newRow = table.addRow();
  newRow.setString("name", "user 23");
  newRow.setString("id", 32);
  
  newRow = table.addRow();
  newRow.setString("name", "admin");
  newRow.setString("id", 45);
  
  newRow = table.addRow();
  newRow.setString("name", "mikasa");
  newRow.setString("id", 23);
  
  showTable();
}
  
function getMatchResults() {
  clear();
  
  let matchQuery =
      matchQueryInput.value();
  
  // Get the row values using matchRow()
  if (matchQuery != "") {
    
    // Match the query in the column of 'name'
    matchResults =
      table.matchRow(new RegExp(matchQuery),
                     "name");
  
    if (matchResults) {
      text("The row that matches the "
           "query is", 20, 120);
  
      // Display the matched value
      text(matchResults.arr[0], 20, 140);
      text(matchResults.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);
}

Output:

Environment Setup: https://www.geeksforgeeks.org/p5-js-soundfile-object-installation-and-methods/amp/

Reference: https://p5js.org/reference/#/p5.Table/matchRow


Article Tags :