Javascript数组仅显示搜索到的项目

时间:2018-09-14 12:56:04

标签: javascript arrays string

我想知道如何从包含1个单词的项目的数组中显示项目。

例如:

我的数组值:

[ "Level 3", "Level 4", "Level 5", "Level 6" ]

我只搜索“ 5”,用

var ValueSearched = "Level 5".slice(-1);
if (Array.toString().indexOf(ValueSearched) > -1)

它显示完整的句子“ Level 5”,并且仅显示这一句话。

2 个答案:

答案 0 :(得分:0)

Array.toString().indexOf不是在substring中搜索array的正确方法,您会将整个array视为string,是错误的,它将返回整个数组的值。

这里您需要使用 Array#filter() method String#indexOf() method 来过滤包含搜索词的项目:

let matches = array.filter(el => el.indexOf(ValueSearched) > -1);

这将返回与ValueSearched匹配的正确元素,无论ValueSearched是整个string还是部分{}。

演示:

这是一个有效的演示:

var array = ["Level 3", "Level 4", "Level 5", "Level 6"]

var ValueSearched = "Level 5";

let matches = array.filter(el => el.indexOf(ValueSearched) > -1);
console.log(matches);

编辑:

要仅返回一个匹配元素,请使用.find()而不是.filter(),它将仅返回第一个匹配项。

array.find(el => el.indexOf(ValueSearched) > -1);

答案 1 :(得分:0)

filteredArray =[ "Level 3", "Level 4", "Level 5", "Level 6" ].filter(function(item){
    return item.includes("5");
});


console.log(filteredArray);