在数组元素中搜索单词或短语,并使用.filter返回结果

时间:2015-11-05 11:23:43

标签: javascript

我正在尝试按用户定义的单词过滤数组,以便它像搜索一样运行。这可能不是解决问题的方法,但我以前从未创建过搜索,而且它的逻辑和速度都很快。我有一个数组'数据集',包含我在各种对象中的数据。它看起来像这样: 数据集[对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象,对象]

每个对象包含以下内容:

commenturl: "http://blogs.ft.com/businessblog/2013/12/"
definition: "To fire someone."
sourceurl: null
submisiondate: "02/11/2015"
usagesource: "HSBC"
phrase: "Transition out of the company"
wordid: "word001"
wordtype: "Verb"

我有一个输入表单,当其更改时将其值返回到变量'lookup'。因此,如果我在表单中键入“公司”一词,则查找='公司'

然后,我想将名为'phrase'的元素上的对象数据集过滤到另一个名为'results'的数组。在上面的示例中,元素短语='转出公司',因为它包含与'lookup'相同的单词'company',它应该将整个对象返回到结果数组。

在数组数据集的第二个对象中,元素短语='死亡',所以我不希望返回

尝试做这样的事情,但似乎不起作用。任何帮助表示赞赏

var lookup=String(this.value)
        console.log("search",lookup);
        var results=dataset.filter(function(el){return el.word.text.indexOf(lookup) > -1)});
        console.log("results",results);

1 个答案:

答案 0 :(得分:0)

似乎有一个无与伦比的支架,现在可行了

var lookup=String(this.value)
        console.log("search",lookup);
        var results=dataset.filter(function(el){
            return (el.word.indexOf(lookup) > -1)
        });
        console.log("results",results);