返回数组中指定元素的下标
一、实验描述
1、 考核知识点
indexOf()
2、 练习目标
掌握indexOf()方法的使用
3、 需求分析
indexOf()返回某个指定的字符串值在字符串中首次出现的位置,indexOf()方法对大小写敏感!如果要检索的字符串值没有出现,则该方法返回 -1。本实验使用indexOf()来查找数组中元素d出现的次数,并返回其对应的所有索引的下标。
4、 实验分析
- 效果如图3-2所示。
图3-1 返回所有d的坐标和出现的次数
- 具体实现步骤如下:
a) 定义一个数组arr,存放数组元素。
b) 定义findall()函数,返回对应所有索引下标。
c) 定义count()函数,返回d元素出现的次数。
d) 在页面中输出索引下标和出现次数。
方法一:
<script>
var arr = ['a', 'b', 'd', 'd', 'c', 'd', 'd'];
var res = [];
var indexnum = 0; //统计字母出现的个数
var num = 0; //原数组的下标
for (var i = 0; i < arr.length; i++) {
num = arr.indexOf('d', 0); //获得第一个d的下标
if (num != -1) { //记录个数
res[indexnum] = num;
indexnum++;
}
arr[num] = 'c';
}
//遍历数组,输出元素d所在的下标
for (var i = 0; i < res.length; i++) {
document.write(res[i] + ',');
}
document.write('</br>' + indexnum); //输出字母出现的个数
</script>
方法二:
<script>
var arr = ['a', 'b', 'd', 'd', 'c', 'd', 'd'];
var search = 'd';
var res = [];
var i = arr.indexOf(search);
while (i !== -1) {
res.push(i);
i = (i <= 6 ? arr.indexOf(search, i + 1) : -1);
}
document.write("元素" + search + '在数组中对应下标:' + res + '<br>d出现的次数:' + res.length);
</script>