JavaScript slice 方法
slice 方法用于截取字符串中的一部分并返回该部分字符串。其语法如下:
复制代码 代码如下:
str_object.replace(start, end)
参数说明:
参数 说明
str_object 要操作的字符串(对象)
start 必需。要截取的开始位置,从 0 开始计算;如果为负数,则从字符串末尾反向开始计算
end 可选。要截取的结束位置,如果省略则到字符串结束;如果为负数,则从字符串末尾反向开始计算
slice 方法实例
代码如下:
<script language="JavaScript">
var str = "abcdef";
document.write( str.slice(1) + "<br />" );
document.write( str.slice(1,3) + "<br />" );
// 获取最后两个字符
document.write( str.slice(-2) + "<br />" );
document.write( str.slice(-4,-2) );
</script>
运行该例子,输出:
代码如下:
bcdef
bc
ef
cd
indexOf()方法
indexOf()方法从数组的开头(位置为0)开始向后查询。indexOf()方法返回指定数组项在数组中找到的第一索引值。如果通过indexOf()查找指定的数组项在数组中不存在,那么返回的值会是-1。
语法
indexOf()使用的语法非常的简单:
arr.indexOf(searchElement[, fromIndex = 0])
searchElement: 是指定要查找的数组项
fromIndex: 开始查找的位置。
如果该索引值(fromIndex)大于或等于数组长度(length),意味着不会在数组里查找,返回-1。如果参数中提供的索引值是一个负值,则将其作为数组末尾的一个抵消,即-1表示从最后一个元素开始查找,-2表示从倒数第二个元素开始查找 ,以此类推。
注意:如果参数中提供的索引值是一个负值,仍然从前向后查询数组。如果抵消后的索引值仍小于0,则整个数组都将会被查询。其默认值为0。
示例
一起来看看使用示例:
var arr = [0,1,2,3,4,5,6,5,4,3,2,1,0];
console.log(arr.length); // 13
arr.indexOf(2); // 2
arr.indexOf(7); // -1
arr.indexOf(9, 2); // -1
arr.indexOf(2, -1); // -1
arr.indexOf(2, -3); // 10
arr.indexOf(2)
arr.indexOf(2)表示的是从数组arr第0索引值开始查找第一个数组项2,并且返回其在数组中对应的索引值:
indexOf()
arr.indexOf(7)
arr.indexOf(7)其要在数组确定数组项7的索引值,但整个数组arr并没有数组项7的存在,如此一来,indexOf()方法在arr数组中找不到数组项7。这样一来就arr.indexOf(7)就会返回的值为-1。
indexOf()
arr.indexOf(9, 2)
arr.indexOf(9, 2)表示从数组arr的第2个索引值位置开始查找数组项9,但整个数组arr中并没有数组项9的存在,这样一来,indexOf()方法在arr数组中找不到数组项9。那其最后返回的值为-1。
indexOf()
arr.indexOf(2, -1)
arr.indexOf(2, -1)表示的是从数组arr最后一个(相当于arr.length - 1,也就是12)开始查找数组项第一个2。如果不存在将返回-1。
indexOf()
arr.indexOf(2, -3)
arr.indexOf(2, -3)表示从数组arr倒数的第3个索引值(相当于arr.length-3,也就是10)开始查找数组项中第一个2。在这个示例中将返回的值为10。
indexOf()
从上面的示例可以告诉我们,如果indexOf()返回的值为-1时,就可以轻松的判断这个数组项是否在数组中存在。比如:
var arr = ['a','b','c'];
function arrIndexOf (arrayItems, arrayItem) {
if (arrayItems.indexOf(arrayItem) === -1) {
console.log(arrayItem + '不在[' + arrayItems + ']数组中');
}
else if (arrayItems.indexOf(arrayItem) > -1){
console.log(arrayItem + '在[' + arrayItems + ']数组中的索引值是:' + arrayItems.indexOf(arrayItem));
}
}
arrIndexOf(arr, 'c'); // c在[a,b,c]数组中的索引值是:2
arrIndexOf(arr, 'd'); //d不在[a,b,c]数组中