是否可以在数组中搜索一串文本,然后返回包含它的对象的内容?

例如:

<script>
    var itemsArray = ["2Bedroom Ensuite 2Bathroom", "1Bedroom Ensuite 1Bathroom", "3Bedroom 2Bathroom"];
    var searchTerm = 'ensuite';
    var results = $.searchThing('itemsArray', searchTerm);
    document.write(results);
</script>

上面的假设脚本(其中 'searchThing' 是方法 - 如果存在)应该写
2Bedroom Ensuite 2Bathroom
2Bedroom Ensuite 2Bathroom

这存在吗?如何做呢?

谢谢

最佳答案

您可以使用 ES5 Array.prototype.filter 方法:

var results = itemsArray.filter(function (elem) {
    return elem.toLowerCase().indexOf(searchTerm) > -1;
});

请注意,较旧的浏览器不支持 .filter() 方法。支持那些浏览器 you can use a polyfill

编辑:您还可以使用 jQuery $.grep() 实用程序函数:
var results = $.grep(itemsArray, function(elem) {
    return elem.toLowerCase().indexOf(searchTerm) > -1;
});

关于javascript - jQuery - 返回数组中包含文本字符串的所有对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21944799/

10-10 23:26