JavaScript Operators

Execute custom JavaScript functions using js.eval().

Syntax: ${js.eval('functionName', arg1, arg2, ...)}


Examples

Array Manipulation:

function addToArray(data) {
  var array = data[0];
  var item = data[1];
  return [...array, item];
}

function removeFromArray(data) {
  var array = data[0];
  var item = data[1];
  return array.filter(i => i !== item);
}
${js.eval('addToArray', selectedItems, currentItem)}

Filtering:

function filterByPriceRange(data) {
  var products = data[0];
  var min = data[1];
  var max = data[2];
  return products.filter(p => p.price >= min && p.price <= max);
}
${js.eval('filterByPriceRange', products, 50, 100)}

Sorting:

function sortByField(data) {
  var array = data[0];
  var field = data[1];
  var asc = data[2] !== undefined ? data[2] : true;
  return [...array].sort((a, b) => 
    a[field] < b[field] ? (asc ? -1 : 1) : a[field] > b[field] ? (asc ? 1 : -1) : 0
  );
}
${js.eval('sortByField', products, 'price', true)}

Calculations:

function average(data) {
  var numbers = data[0];
  return numbers.reduce((sum, n) => sum + n, 0) / numbers.length;
}

function calculateDiscount(data) {
  var price = data[0];
  var qty = data[1];
  var tiers = data[2];
  const tier = tiers.find(t => qty >= t.minQty && qty <= t.maxQty);
  return price * qty * (1 - (tier?.discount || 0));
}
${js.eval('average', ratings)}
${js.eval('calculateDiscount', price, quantity, discountTiers)}

Selection System Example

function isSelected(data) {
  var selections = data[0];
  var itemId = data[1];
  return selections.some(s => s.id === itemId);
}

function toggleSelection(data) {
  var selections = data[0];
  var item = data[1];
  const idx = selections.findIndex(s => s.id === item.id);
  return idx > -1 ? selections.filter((_, i) => i !== idx) : [...selections, item];
}

Usage:

Button:
  Text: ${if(js.eval('isSelected', selectedProducts, product.id), "Remove", "Add")}
  onClick: Set State: selectedProducts = ${js.eval('toggleSelection', selectedProducts, product)}

Last updated