按第一个字符进行数组搜索
Array Search by first character
是否有任何方法可以在不循环数组的情况下搜索具有以特定字符开头的元素的javascript数组。
示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
从这个数组中,我想检查任何以字符"M"开头的元素。注意:不应循环数组。
您可以使用.filter函数,但在内部它仍然会使用循环。事实上,没有循环就无法检查完整的数组。
fruits.filter(function(item) { return item.substring(0, 1) == 'M'; });
如果数组不包含对象或值不包含,
,则使用可以加入数组以创建字符串,然后使用正则表达式
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var exists = /,M/.test(fruits.join());
console.log(exists)
唯一能做到这一点的方法是将它们作为定义索引的关联数组的子部分。
因此,当你初始化/加载数组时,你就定义了其中的字符。这样,您只需要在init处循环或加载值的函数
mainIndex = new Array();
while(loadingarray.hasNext()) {
var next = loadingarray.getNext();
var indexchar = next.charAt(0);
if(typeof mainIndex[indexchar] == 'undefined') {
mainIndex[indexchar] = new Array();
}
mainIndex[indexchar].push(next);
}
您也可以这样做:
var exists = fruits.some(function(element){return element[0] === "M"});
关于.some()
的更多信息,请点击此处:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some
使用此代码
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var match = fruits.filter(function (item, index, array) {
if(item.charAt(0) === "M")
console.log(item);
});
http://jsfiddle.net/a02z99xg/4/
您可以使用迭代方法filter(),如下所示:
var match = fruits.filter(function (item, index, array) {
return item.charAt(0) === "M";
});
https://jsfiddle.net/lemoncurry/tydrgmoa/
没有内置函数,创建自定义函数。
相关文章:
- 使用javascript搜索具有用户输入的数组
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 使用数组向下搜索Javascript对象
- 具有嵌套对象数组的 Javascript 对象的递归搜索函数
- jQuery-在数组中搜索类似的元素
- Javascript:使用用户输入搜索数组
- findAndModify,如何对文档进行操作's数组搜索对象并更改字段值
- 在记录数组搜索后追加变量和数组项
- 按第一个字符进行数组搜索
- 更高效的数组搜索
- Javascript数组搜索并删除字符串
- JavaScript中的二进制数组搜索
- 在JavaScript中有更好的方法吗?使用while进行数组搜索
- Javascript中的数组搜索不工作
- 如何用输入数组搜索对象
- 这是更有效的JavaScript数组搜索或MySQL LIKE查询
- Javascript或PHP数组搜索像SQL % search %
- Js数组搜索功能,适用于ie8
- 从Python到Javascript的2D数组搜索
- Javascript数组搜索