剩余一些数组常用的方法:
序号 | 方法 | 定义 | 返回值 |
10 | indexOf() | 获取数组项在数组中的索引 | 索引值 |
11 | lastIndexOf () | 获取数组项在数组中出现的最后一次的索引 | 索引值 |
12 | forEach() | 循环遍历数组 | 默认返回 undefined |
13 | map() | 循环遍历数组 | - |
10、indexOf() :可返回某个指定的字符串值在字符串中首次出现的位置。
语法
stringObject.indexOf(searchvalue,fromindex)
参数详情
参数 | 描述 |
searchvalue | 必需。规定需检索的字符串值。 |
fromindex | 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。 |
说明
该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。
开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。
如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。
stringObject 中的字符位置是从 0 开始的。
注意
indexOf() 方法对大小写敏感!
如果要检索的字符串值没有出现,则该方法返回 -1。
代码
// indexOf() 某个指定的字符串值在字符串中首次出现的位置。
var arr1 = ['0','1','2','3','hello','world'];
var a = arr1.indexOf('hello', 1);
console.log(a) // 4
var a = arr1.indexOf('hello', 5);
console.log(a) // -1 (没找到就返回-1)
11、lastIndexOf () :获取数组项在数组中出现的最后一次的索引
语法
string.lastIndexOf(searchvalue,start)
参数详情
参数 | 描述 |
searchvalue | 必需。规定需检索的字符串值。 |
说明
该方法将从后向前检索数组,但返回是从起始位置 (0) 开始计算该元素最后出现的位置。
lastIndexOf() 方法是区分大小写的!
代码
// lastIndexOf() 获取数组项在数组中出现的最后一次的索引
var arr1 = ['0','1','2','3','hello','world','0'];
var a = arr1.lastIndexOf('0');
console.log(a) // 6
12、forEach() :用于调用数组的每个元素,并将元素传递给回调函数。
语法
array.forEach(function(currentValue, index, arr), thisValue)
参数详情
参数 | 描述 |
function(currentValue, index, arr) | 必需。 数组中每个元素需要调用的函数。 |
currentValue(函数内参数) | 必需。当前元素。 |
index(函数内参数) | 可选。当前元素的索引值。 |
arr(函数内参数) | 可选。当前元素所属的数组对象.。 |
thisValue | 可选。传递给函数的值一般用 “this” 值。如果这个参数为空, “undefined” 会传递给 “this” 值 |
说明
forEach() 对于空数组是不会执行回调函数的。
代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>将数组中的所有值乘以特定数字:</title>
</head>
<body>
<p>点击按钮将数组中的所有值乘以特定数字。</p>
<p>乘以: <input type="number" id="inp" value="10"></p>
<button onclick="num.forEach(myFunction)">点我</button>
<p>计算后的值: <span id="demo"></span></p>
<script>
var num = [10, 20, 30, 40];
function myFunction(item,index,arr) {
arr[index] = item * document.getElementById("inp").value;
demo.innerHTML = numbers;
}
</script>
</body>
</html>
</script>
13、map() :返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
语法
array.map(function(currentValue,index,arr), thisValue)
说明
map() 不会对空数组进行检测。
map() 不会改变原始数组。
参数详情
参数 | 描述 |
function(currentValue, index,arr) | 必须。函数,数组中的每个元素都会执行这个函数 |
currentValue(函数内参数) | 必需。当前元素。 |
index(函数内参数) | 可选。当前元素的索引值。 |
arr(函数内参数) | 可选。当前元素所属的数组对象.。 |
thisValue | 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。 |
代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>map()</title>
</head>
<body>
<p>点击按钮将数组中的每个元素乘于输入框指定的值,并返回新数组。</p>
<p>乘以: <input type="number" id="inp" value="10"></p>
<button onclick="myFunction()">点我</button>
<p>新数组: <span id="arr"></span></p>
<script>
var number = [1, 2, 3, 4];
function multiplyArrayElement(num) {
return num * document.getElementById("inp").value;
}
function myFunction() {
document.getElementById("arr").innerHTML = number.map(multiplyArrayElement);
}
</script>
</body>
</html>