我有一个元素数组
["page=4", "sortOrder=asc", "datePosted=all-time"]
使用 javascript 或 jquery 我想找到以 "sortOrder="
开头的元素的索引。我不会在编译时知道这个元素的完整字符串,只知道 "sortOrder="
部分。
我假设这可以在不需要遍历数组和执行 item.match("sortOrder=")
的情况下完成,但也许我错了。
感谢您的帮助。
最佳答案
如果你想获取匹配特定正则表达式的数组中的值:
...要仅获取第一个匹配项的值,您可以使用find()
const array = ["page=4", "sortOrder=asc", "datePosted=all-time", "sortOrder=desc"];
const match = array.find(value => /^sortOrder=/.test(value));
// match = "sortOrder=asc"
...要获取所有匹配结果的数组,您可以使用filter()
const array = ["page=4", "sortOrder=asc", "datePosted=all-time", "sortOrder=desc"];
const matches = array.filter(value => /^sortOrder=/.test(value));
// matches = ['sortOrder=asc', 'sortOrder=desc'];
...要获得第一场比赛的索引,您可以使用findIndex()
const array = ["page=4", "sortOrder=asc", "datePosted=all-time", "sortOrder=desc"];
const index = array.findIndex(value => /^sortOrder=/.test(value));
// index = 1;
如果你没有使用 ES6,这里是 the code in ES5 .
关于javascript - 使用正则表达式匹配查找数组中的元素而不遍历数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7038575/