通过动态道具过滤数组(带有嵌套对象)

时间:2019-02-11 15:13:00

标签: javascript arrays filter

我有N个对象的数组。我想编写一个过滤器,该过滤器根据多个动态属性使用JSON.stringify进行过滤。

但是动态的却没有静态属性(如上面的代码)
你有什么想法吗?

return items.filter(item =>
    JSON.stringify(item.prop1 && item.prop2 && ....)
        .toLowerCase()
        .includes(searchParam)
);

2 个答案:

答案 0 :(得分:0)

您将不得不编写一个函数,将您的对象转换为仅具有所需属性的精简对象:

document.getElementById("upgrade3").style.display = "block";

然后您的代码将如下所示:

function getProperties(obj, propList) {
  var newObj = {};
  propList.forEach(prop => {
    newObj[prop] = obj[prop];
  });
  return newObj;
}

答案 1 :(得分:0)

$file = file_get_contents("pdf.pdf");
$fileData = base64_encode($file);
echo $fileData;

使用 items.filter(item => ["prop1", "prop2"].some(key => item[key].toLowerCase() === searchParam)) 将对象转换为可搜索的字符串是一个坏主意,因为关键字也包含在搜索中,并且比遍历所需的关键字要慢得多。