在数组中查找字符串

时间:2019-02-14 14:07:20

标签: angular

我试图在数组中找到一个字符串,所以有一个输入框,我输入要搜索的值。 所以我创建了一个模板驱动的表单,并在提交后将其值存储在变量中,如

onsubmit(){
 let search=this.searchform.value
console.log(search)
}

所以在控制台中显示的值是

{search: "Bread"}

现在运行线路

  let  titles=this.itemlist.map(i=>i.title);
   console.log(titles)

我有一个数组,其中包含元素

(2) ["Bread2", "Bread"]

如何在数组中搜索字符串,例如在提交表单后需要控制的变量“搜索”,需要在此数组中进行搜索

5 个答案:

答案 0 :(得分:0)

如果您想知道数组中是否存在给定的字符串,并尝试使用此js函数来检索其索引,请执行以下操作:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");

可以找到文档here

答案 1 :(得分:0)

尝试titles.includes(this.searchform.value)

titles.indexOf(this.searchform.value) > -1

答案 2 :(得分:0)

onsubmit(){
  let search = this.searchform.value
  let titles = this.itemlist.map(i=>i.title);

  let found1 = titles.filter(title => title === search.search)
  let found2 = titles.filter(title => title.includes(search.search))
}

found1包含完全匹配的标题。并且found2包含标题,其中包含search.search作为子字符串。

答案 3 :(得分:0)

您可以使用数组的includes函数来查找值是否在数组中可用

let result = ["Bread2", "Bread"].includes("Bread");
  

如果字符串在数组中,则结果为true

另一种方法是找到类似的索引

let arr = ["Bread2", "Bread"];
let index = arr.indexOf("Bread");

如果索引为-1,则此字符串在数组中不可用,否则字符串可用

console.log(arr[index]); //this will give value of string

答案 4 :(得分:-1)

像这样的过滤器

 let  titles=this.itemlist.map((i)=>
                          {
                            if(i.title===search) return i;
                           });