如何在javascript中查找数组中第一次出现的条件(在我的例子中为>;0)的索引
都在标题里。我尝试了太多我都数不清的东西。我的目标是计算在如何在javascript中查找数组中第一次出现的条件(在我的例子中为>;0)的索引,javascript,Javascript,都在标题里。我尝试了太多我都数不清的东西。我的目标是计算在numArr中第一次出现大于0的数字之前有多少个0,这样我可以在以后的代码中使用它。我真的不知道如何正确地做到这一点 到目前为止,我的代码是: 函数递增字符串(strng){ //循环通过拆分的数组 设newArr=strng.split(“”); 设numArr=[]; 让lettersArr=[]; for(设i=0;i数字(字符)>0); 控制台日志(索引)您可以使用正则表达式查找字符'1''9' 函数findNumber(字符
numArr
中第一次出现大于0的数字之前有多少个0,这样我可以在以后的代码中使用它。我真的不知道如何正确地做到这一点
到目前为止,我的代码是:
函数递增字符串(strng){
//循环通过拆分的数组
设newArr=strng.split(“”);
设numArr=[];
让lettersArr=[];
for(设i=0;i 递增字符串('foobar0100')代码>您可以首先将字符串转换为字符数组(可以使用),然后使用查找满足条件的第一个字符的索引:
const text='foobar0100';
常量索引=[…文本].findIndex((字符)=>数字(字符)>0);
控制台日志(索引)
您可以使用正则表达式查找字符'1'
<代码>'9'
函数findNumber(字符串){
返回数组.from(string).findIndex(s=>/[1-9]/.test));
}
console.log(findNumber('foobar0100'))代码>这将适用于所有浏览器,并且没有奇怪的语法-假设我正确理解了您的问题
var incrementedString='foobar0100'。替换(/[1-9]/,函数(num,pos,string){
返回(++num);
});
log(incrementedString)
这让我想起了基于您将函数命名为“incrementString”的事实,最终目标是什么?你想得到foobar0101
?标题是“如何找到第一次出现的条件的索引(>0在我的情况下)”,但正文是“我的目标是计算在你的递增字符串('foobar9')中一个大于0的数字第一次出现之前有多少0”
,预期结果是否为'foobar10'
?我可以看出这是有问题的。还有一个有趣的注意事项是,[…text].findIndex(Number)
在功能上是等效的,因为字母
始终是单个字符。但我不会把它改成那样,因为这更具可读性,并且清楚地表明了它的意图。