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