javascript - 压入数组中字符的索引

标签 javascript for-loop indexof

我只是把 Javascipt 作为练习。我只想将字符串中每个空格的索引号插入数组中。但不幸的是,我的数组是空的 - 或者充满了空格,我不确定是哪一个。任何帮助都会被优雅地接受。 :)

function checkText() {
	var str1 = document.getElementById("texty").innerHTML;
	var dexArray = [];
	
	for (var i = 0; i < str1.length; i++) {
		if (str1.indexOf(str1[i]) === " ") {
		  dexArray.push(str1.indexOf(str1[i]));
		 }
	}
	alert(dexArray);
}
<p id="texty">Mary had a little lamb</p>
<button onclick="checkText()">Click</button>

最佳答案

您只需检查位置 i 处的字符,然后将其推送到结果(如果找到)。

function checkText() {
    var str1 = document.getElementById("texty").innerHTML;
    var dexArray = [];
	
    for (var i = 0; i < str1.length; i++) {
        if (str1[i] === " ") {
            dexArray.push(i);
        }
    }
    console.log(dexArray);
}
<p id="texty">Mary had a little lamb</p>
<button onclick="checkText()">Click</button>

带有 indexOf 的版本.

function checkText() {
    var str1 = document.getElementById("texty").innerHTML,
        dexArray = [],
        i = str1.indexOf(' ');
	
    while (i !== -1) {
        dexArray.push(i);
        i = str1.indexOf(' ', i + 1); // change start postion for search
    }
    console.log(dexArray);
}
<p id="texty">Mary had a little lamb</p>
<button onclick="checkText()">Click</button>

关于javascript - 压入数组中字符的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39996245/

相关文章:

windows - 在 Windows shell 脚本中从字符串中提取数字

javascript - 在调用 indexOf 定义的数组时,对象不支持 IE8 中未定义的此属性或方法

javascript - 什么是 Angular 中的 createEmbeddedView() 上下文参数

javascript - 如何对浏览器中的用户事件信息进行加密,使其无法被仿冒?

javascript - PHP 脚本不断以字符串形式返回数值

javascript - 有没有办法防止 neDB 集合数组中的条目重复?

ruby - 在 Ruby 中循环的首选方式是什么?

jquery - 使用带有 jQ​​uery 或正则表达式的 for 循环从多个 div 中的字符串中获取单词

javascript - indexOf ("http") 匹配 http 和 https

javascript - 为什么 Array.splice(-1,1) 删除 Javascript 中的最后一个元素?