如何获取匹配字符的indexE
How to get indexOf of matching chracters
我想得到 indexOf
所有出现的字符。
例如,我有一个变量a
var a = "aabaaababaa";
我想为 a
中的所有字符获取 indexOf
我试过了:
for(i = 0; i < a.length ;i++){
var len = a.indexOf(a);
console.log(len);
}
但它 returns indexOf
仅用于第一个字符。
查看 indexOf
(specification link, MDN link) 的第二个参数。第二个参数是开始查找的索引。因此,使用一个循环的值加一作为下一次搜索的起点。另外,寻找 string a
,而不是在第一个参数处使用变量 a
(例如,将 a
放在引号中):
var a = "aabaaababaa";
var index = -1;
while ((index = a.indexOf('a', index + 1)) != -1) {
snippet.log(index);
}
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
如果您要查找更长的字符串,具体取决于您是否要在后续循环中匹配 within 该字符串,您可以每次加 1(如上所述)或添加您要查找的内容的长度。
你可以像这样循环,索引将包含所有索引。
var a = "aabaaababaa";
var indexes = [];
for(i = 0; i < a.length ;i++){
if(a.charAt(i) == "a") indexes.push(i);
}
console.log(indexes);
你可以做到
for(i = 0; i < a.length ;i++){
var len = a.indexOf(a[i], i);
console.log(len);
}
a 是一个数组。您必须执行 a[i] 才能访问一个字符
用 var len = a.indexOf(a);您正在寻找变量的索引,因此在这种情况下它将始终为 return 0,因为您正在寻找此变量中变量的第一个索引。
如果你有这样的东西:var c="dfaabaaababaa",并且你使用 var len = c.indexOf(a);它将 return 2.
因此,您必须在其他索引中加注星标,例如:var len=a.indexOf(a, 2)(在本例中为 return -1,因为没有巧合)或者你必须在另一个变量中寻找它,其中包含你正在寻找的变量。
另一个可能的错误(我不知道你想要哪个结果)是你想寻找字符'a'。在这种情况下,您需要:
变量 len=[ ];
for(i = 0; i < a.length ;i++){
len.push(a.indexOf('a', i));
}
我想得到 indexOf
所有出现的字符。
例如,我有一个变量a
var a = "aabaaababaa";
我想为 a
indexOf
我试过了:
for(i = 0; i < a.length ;i++){
var len = a.indexOf(a);
console.log(len);
}
但它 returns indexOf
仅用于第一个字符。
查看 indexOf
(specification link, MDN link) 的第二个参数。第二个参数是开始查找的索引。因此,使用一个循环的值加一作为下一次搜索的起点。另外,寻找 string a
,而不是在第一个参数处使用变量 a
(例如,将 a
放在引号中):
var a = "aabaaababaa";
var index = -1;
while ((index = a.indexOf('a', index + 1)) != -1) {
snippet.log(index);
}
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
如果您要查找更长的字符串,具体取决于您是否要在后续循环中匹配 within 该字符串,您可以每次加 1(如上所述)或添加您要查找的内容的长度。
你可以像这样循环,索引将包含所有索引。
var a = "aabaaababaa";
var indexes = [];
for(i = 0; i < a.length ;i++){
if(a.charAt(i) == "a") indexes.push(i);
}
console.log(indexes);
你可以做到
for(i = 0; i < a.length ;i++){
var len = a.indexOf(a[i], i);
console.log(len);
}
a 是一个数组。您必须执行 a[i] 才能访问一个字符
用 var len = a.indexOf(a);您正在寻找变量的索引,因此在这种情况下它将始终为 return 0,因为您正在寻找此变量中变量的第一个索引。
如果你有这样的东西:var c="dfaabaaababaa",并且你使用 var len = c.indexOf(a);它将 return 2.
因此,您必须在其他索引中加注星标,例如:var len=a.indexOf(a, 2)(在本例中为 return -1,因为没有巧合)或者你必须在另一个变量中寻找它,其中包含你正在寻找的变量。
另一个可能的错误(我不知道你想要哪个结果)是你想寻找字符'a'。在这种情况下,您需要:
变量 len=[ ];
for(i = 0; i < a.length ;i++){
len.push(a.indexOf('a', i));
}