javascript - 循环遍历对象数组中的每个属性

标签 javascript arrays object filter indexof

我有类似于此结构的对象数组:

array = [
    {name: "Alex", content: "Lorem"},
    {name: "Bob", content: "Lorem"}
    ...
]

该数组映射到 html 表。我正在尝试构建搜索方法,它将比较对象的每个属性并返回这些属性,其中包含我正在寻找的单词。我已经构建了方法,该方法正在运行。

if(search_word){
    licenses = licenses.filter((item) => {
        if(item.name.toLowerCase().indexOf(search_word.toLowerCase()) !== -1){
            return item;
        }
    })
}

它工作正常,但我需要一一指定每个对象属性名称。我想要一些更通用的东西,它将循环遍历所有属性名称。我已经尝试过方法:

for(let property in item)

但对我不起作用。你能给点建议吗?啊,我想避免使用 jQuery。

干杯, 丹尼尔

最佳答案

您可以像这样使用someObject.keys:

if(search_word){
    let l_search_word = search_word.toLowerCase(); 
    licenses = licenses.filter( item =>
        Object.keys(item).some( key => 
            item[key].toLowerCase().indexOf(l_search_word) !== -1
        )
    )
}

除了 indexOf,您还可以使用 includes:

item[key].toLowerCase().includes(l_search_word)

关于javascript - 循环遍历对象数组中的每个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44196410/

相关文章:

python - 如何将字符串数组转换为字符串数组?

javascript 获取和设置属性

javascript - 如何使用 javascript 解构设置图表以正确显示信息?

javascript - 从表中获取数据以显示为纯文本

javascript - HTML/CSS 单击 :active or :hover? 时如何触发另一个元素

ios - 如何通过 segue - Swift 从结构对象数组发送变量

javascript/jquery - 向实例化对象添加属性

javascript - jQuery Ajax 上传文件 php 即使没有内容也会接收数组

javascript - JQuery $.ajax.post 到具有 secret API key 的服务

arrays - 当没有频繁值时如何处理数组中的频繁值