Javascript list contains a string
本问题已经有最佳答案,请猛点这里访问。
有人知道不使用indexof检查列表是否包含字符串的方法吗?在我的数组中,一些字符串可以包含其他字符串的一部分,因此indexof将产生误报。
例如,我如何确定"component"是否在下面的数组中?
1 | ["component.part","random-component","prefix-component-name","component"] |
更新:
我使用假阳性似乎有误导性。我的意思是当我想单独匹配字符串时,它会说组件在那里4次。
也就是说,当检查下面的数组中是否存在"component"时,它应该返回false。
1 | ["component.part","random-component","prefix-component-name"] |
使用
例子:
1 2 3 4 5 6 7 8 9 | "use strict"; let items = ["component.part","random-component","prefix-component-name","component"]; let found = items.find(item => { return item ==="component.part" } ); if (found) { console.log("Item exists."); } |
有关更多用法示例。
见:https://developer.mozilla.org/en/docs/web/javascript/reference/global_objects/array/find
一种方法是使用
尝试使用$.inarray()方法。
1 2 3 4 | var list=["component.part","random-component","prefix-component-name","component"]; if($.inArray(" component",list) != -1){ console.log("Item found"); } |
Does anyone know of a way to check if a list contains a string without using indexOf? In my array some strings can contains parts of others, so indexOf will produce false positives.
假阳性?
indexof不会给你假阳性。它会给你3分。如果您想找到所有具有"OtherStuff组件网"的元素,可以通过数组进行循环,并使用string.includes()进行检查。
这是一个初学者友好的解决方案。
1 2 3 4 5 6 7 8 9 10 | var arr = ["component.part","random-component", "prefix-component-name","component","asdf"]; console.log(arr.indexOf('component')); // give u 3 for (var i = 0; i < arr.length; i++){ if (arr[i].includes('component')){ console.log(arr[i]); } } |