Как я могу добавить операцию «или» в цикл?

#javascript #angular #logical-operators

#javascript #угловой #логические операторы

Вопрос:

Я хочу зациклить приведенный ниже код. Как я могу сохранить имена столбцов в массиве и возвращать по циклу?

  return Students.filter((singleItem) => {

   singleItem["id"].toLowerCase().includes(value.toLowerCase()) ||
   singleItem["name"].toLowerCase().includes(value.toLowerCase()) ||
   singleItem["class"].toLowerCase().includes(value.toLowerCase())

  });
  

Например:

   var columns= ["id","name","class"];

  return Students.filter((singleItem) => {
   columns.map(data=>{

   singleItem[data].toLowerCase().includes(value.toLowerCase()); //I have to use the "||" operation here. How can I use it in the loop?
  
   })

 });
  

Комментарии:

1. Просто добавьте его туда, где вы хотите его использовать.

Ответ №1:

Вы можете выполнить итерацию заданных ключей и завершить работу раньше Array#some .

 var columns = ["id", "name", "class"];

return Students.filter(singleItem =>
    ["id", "name", "class"].some(key =>
        singleItem[key].toLowerCase().includes(value.toLowerCase())
    )
);