I am currently using ReTool, an app-building platform that uses javascript. I generated a multi-select dropdown menu that I want to filter out a table. The {{multiselect1.value[i]}} indicate the selected values and value.Operation are the rows with conditions I want to keep. I am wondering if there is a more condensed form of this function that can handle as many selections as possible. This code only works for up to 6 selections.
function MultiSelect(value) {
if ({{multiselect1.value[0] !== undefined}} && {{multiselect1.value[1] === undefined}}) {
return value.Operation === {{multiselect1.value[0]}}
}
else if ({{multiselect1.value[1] !== undefined}} && {{multiselect1.value[2] === undefined}}) {
return value.Operation === {{multiselect1.value[0]}} || value.Operation === {{multiselect1.value[1]}}
}
else if ({{multiselect1.value[2] !== undefined}} && {{multiselect1.value[3] === undefined}}) {
return value.Operation === {{multiselect1.value[0]}} || value.Operation === {{multiselect1.value[1]}} || value.Operation === {{multiselect1.value[2]}}
}
else if ({{multiselect1.value[3] !== undefined}} && {{multiselect1.value[4] === undefined}}) {
return value.Operation === {{multiselect1.value[0]}} || value.Operation === {{multiselect1.value[1]}} || value.Operation === {{multiselect1.value[2]}} || value.Operation === {{multiselect1.value[3]}}
}
else if ({{multiselect1.value[4] !== undefined}} && {{multiselect1.value[5] === undefined}}) {
return value.Operation === {{multiselect1.value[0]}} || value.Operation === {{multiselect1.value[1]}} || value.Operation === {{multiselect1.value[2]}} || value.Operation === {{multiselect1.value[3]}} || value.Operation === {{multiselect1.value[4]}}
}
else if ({{multiselect1.value[5] !== undefined}} && {{multiselect1.value[6] === undefined}}) {
return value.Operation === {{multiselect1.value[0]}} || value.Operation === {{multiselect1.value[1]}} || value.Operation === {{multiselect1.value[2]}} || value.Operation === {{multiselect1.value[3]}} || value.Operation === {{multiselect1.value[4]}} || value.Operation === {{multiselect1.value[5]}}
}
else {
return value.Operation !== ""
}
};
return data.filter(MultiSelect);