数组和字符串有着很多的方法,这篇文章将总结一些字符串和数组的方法。
先是字符串
length方法:会返回字符串的长度。
let pizza = "ABCDEFGHIJKLMN";
console.log(pizza.length);//这里打印输出的是14
14代表了字符串的长度是14,所以所length的作用就是返回字符串的长度。
indexOf() 方法返回字符串中指定文本首次出现的索引
var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");
document.getElementById("demo").innerHTML = pos;
这里会输出17,代表了第一次出现“China”这个字符串的位置(下标)在第17,如果没有找到,则会返回-1
lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引
var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China");
document.getElementById("demo").innerHTML = pos;
这里打印输出的是51,则代表了最后一次出现“China”字符串的是在下标51的位置,如果没有找到,则会返回-1
slice() 提取字符串的某个部分并在新字符串中返回被提取的部分。
var str = "Apple, Havaen, Mango";
var res = str.slice(7,13);
document.getElementById("demo").innerHTML = res;
这里会返回“Havaen”,两个参数,第一个参数说的是起始位置,第二个参数说的是结束位置,也就是说,从下标7的位置开始,到13结束,但不包含下标13
substring() 类似于 slice()。不同之处在于 substring() 无法接受负的索引
replace() 方法用另一个值替换在字符串中指定的值
数组方法
1、join()方法,这个方法就是能重复字符串
function repeatString(str, n) {
return new Array(n + 1).join(str);
}
console.log(repeatString(“pizza”, 3)); // pizzapizzapizza
console.log(repeatString(“Strawberry”, 2)); // StrawberryStrawberry
push(): 可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
var arr = [“one”,“two”,“three”];
var count = arr.push(“four”,“five”);
console.log(arr); // [“one”, “two”, “three”, “four”, “five”]
shift():删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 。
var pizza = ["one", "two", "three", "four"];
pizza.shift()
console.log(pizza);
打印输出[ 'two', 'three', 'four' ]
unshift():将参数添加到原数组开头,并返回数组的长度
var pizza = ["one", "two", "three", "four"];
pizza.unshift("this is new one")
console.log(pizza);
sort():按升序排列数组项——即最小的值位于最前面,最大的值排在最后面
pizza = [23,412,413,525,5321,5];
console.log(pizza.sort()); // [ 23, 412, 413, 5, 525, 5321 ]
reverse():反转数组项的顺序
pizza = [23,412,413,525,5321,5];
console.log(pizza.reverse()); // [ 5, 5321, 525, 413, 412, 23 ]
是反转字符串,并不是降序排列
splice():它有很多种用法,可以实现删除、插入和替换
删除:可以删除任意数量的项,只需指定 2 个参数:要删除的第一项的位置和要删除的项数。例如, splice(0,2)会删除数组中的前两项。
插入:可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项。例如,splice(2,0,4,6)会从当前数组的位置 2 开始插入4和6。
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。例如,splice (2,1,4,6)会删除当前数组位置 2 的项,然后再从位置 2 开始插入4和6。
indexOf():接收两个参数:要查找的项和(可选的)表示查找起点位置的索引
var pizza = [1,3,5,7,7,5,3,1];
console.log(pizza.indexOf(5)); //2
lastIndexOf:接收两个参数:要查找的项和(可选的)表示查找起点位置的索引
var pizza = [1,3,5,7,7,5,3,1];
console.log(pizza.lastIndexOf(5)); //5
map():指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
filter():“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组
let pizza = [
{name:'one',age:19},
{name:'two',age:20},
{name:'three',age:21},
{name:'four',age:22},
{name:'five',age:23}
];
let pz = pizza.filter(function(i){
if(i.age<=22){
return true;
}else{
return false;
}
});
console.log(pz);
打印输出:
[ { name: 'one', age: 19 },
{ name: 'two', age: 20 },
{ name: 'three', age: 21 },
{ name: 'four', age: 22 } ]
every() 方法用于检测数组所有元素是否都符合指定条件
let pizza = [
{name:'one',age:19},
{name:'two',age:20},
{name:'three',age:21},
{name:'four',age:22},
{name:'five',age:23}
];
let pz = pizza.every(function(i){
if(i.age==19){
return true;
}else{
return false;
}
});
console.log(pz);
打印输出:
false
some方法,如果测试为真,则返回真
let pizza = [
{name:'one',age:19},
{name:'two',age:20},
{name:'three',age:21},
{name:'four',age:22},
{name:'five',age:23}
];
let pz = pizza.some(function(i){
if(i.age==19){
return true;
}else{
return false;
}
});
console.log(pz);
打印输出
true