我想知道如何从包含1个单词的项目的数组中显示项目。
例如:
我的数组值:
[ "Level 3", "Level 4", "Level 5", "Level 6" ]
我只搜索“ 5”,用
var ValueSearched = "Level 5".slice(-1);
if (Array.toString().indexOf(ValueSearched) > -1)
它显示完整的句子“ Level 5”,并且仅显示这一句话。
答案 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
还是部分{1>}。
演示:
这是一个有效的演示:
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);