如何在循环中添加“或”操作?

问题描述

我想循环下面的代码。如何将列名保留在数组中并循环返回?

 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?
  
   })

 });

解决方法

您可以迭代给定的键并使用Array#some提前退出。

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

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