JavaScript关于数组方法以及字符串方法的总结
数组方法
改变原数组的有:
push pop unshift shift reverse splice sort
不改变原数组的有:
slice toString join concat find findIndex indexOf includes every some filter
reduce foreach map
push
push() 方法(在数组结尾处)向数组添加一个新的元素
会改变原数组
let fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");
// 向 fruits 添加一个新元素
console.log(fruits)
//会打印出["Banana", "Orange", "Apple", "Mango","Kiwi"]
pop
pop() 方法从数组中删除最后一个元素
会改变原数组
let fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop();
// 从 fruits 删除最后一个元素("Mango")
console.log(fruits)
//会打印出["Banana", "Orange", "Apple"]
unshift
unshift() 方法(在开头)向数组添加新元素,并返回新的长度。
会改变原数组
let fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon");
// 向 fruits 添加新元素 "Lemon"
console.log(fruits)
//会打印出["Lemon","Banana", "Orange", "Apple", "Mango"]
shift
shift() 方法会删除首个数组元素。
会改变原数组
let fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift();
console.log(fruits)
//会打印出["Orange", "Apple", "Mango"]
reverse
reverse() 方法用于颠倒原数组中元素的顺序。返回原数组的倒序
会改变原数组
let fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();
console.log(fruits)
//会打印出["Mango","Apple","Orange","Banana"]
slice
slice() 方法可从已有的数组中返回选定的元素。
不会改变原数组
let arr = [1,2,3,4,5,6,7];
console.log(arr.slice(2));
//输出[3,4,5,6,7] 及下标2之后的所有元素
console.log(arr.slice(-2));
//如果是负数,那么将从数组尾部开始算起的位置。输出[6,7] 及从倒数第二个开始
console.log(arr.slice(2,4));
//返回一个新的数组,包含从起始位置到 结束位置(不包括该元素)的元素。输出[3,4]
splice
splice() 方法可以向数组中添加项目或从数组中删除项目,然后返回被删除的项目。
会改变原始数组。
var arr = [1,2,3,4,5,6,7];
console.log(arr.splice(1,1,"a"));//输出[2]
console.log(arr);//原数组变为[1,"a",3,4,5,6,7]
console.log(arr.splice(3,2,"c","d"));
console.log(arr);//改变多个元素
console.log(arr.splice(2,0,"e","f"));
console.log(arr);// 添加新元素在下标2的位置
console.log(arr.splice(2,4));
console.log(arr);//删除元素从下标2开始的四个元素
sort
sort() 方法用于对数组的元素进行排序。
会改变原始数组。
let arr = [44, 81, 47, 16, 23, 2, 35];
//升序排列
console.log(arr.sort((a, z) => {
return a - z
}))
//降序排列
console.log(arr.sort((a, z) => {
return z - a
}))
toString
toString() 把数组转换为数组值(逗号分隔)的字符串。(去掉[]括号,不管多少层嵌套)
不会改变原数组
let arr = ["Jackson","Micheal"];
let arr2 = ["Jackson",["Micheal"]];
console.log(arr.toString());//输出Jackson,Micheal
console.log(arr2.toString());//输出Jackson,Micheal
join
join(分隔符) 方法用于把数组中的所有元素放入一个字符串,并用规定的分隔符隔开
不会改变原数组
const a=['a','b','c','d']
console.log(a.join('-'))//输出a-b-c-d
concat
concat()可以连接两个或更多的数组,并返回结果。
不会改变原数组
let a=[1,2]
let b=[3,4]
console.log(a.concat(b))//输出[1, 2, 3, 4]
console.log(a)
console.log(b)
find
find() 方法返回数组中满足提供的条件的第一个元素的值。否则返回 undefined。
const a = [11, 15, 17]
let b = a.find((i, index) => {
return i > 14
})
//查找第一个符合要求的
console.log(b)//输出15
findIndex
findIndex() 它返回数组中找到的满足条件的元素的索引,而不是其值。
const a = [11, 15, 17]
let c = a.findIndex((i, index) => {
return i > 14
})
console.log(c)//输出1
indexOf
indexOf() 找到一个元素的位置
let array = [2, 5, 9];
array.indexOf(2); // 及2的索引 输出0
array.indexOf(7); // -1 因数组中没有所以输出-1
includes
includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。
const a = [11, 15, 17]
console.log(a.includes(11))//true
console.log(a.includes(18))//false
every
every() 方法用于测试一个数组内的所有元素是否都能通过某个指定的条件。
const arr =[1,30,39,29,10,13]
let res3 =arr.every(item=>{
return item>10
})
console.log(res3)//输出false 存在比10小的数
some
some() 方法用于测试数组中是不是存在至少有1个元素通过了被提供的条件。
const arr =[1,30,39,29,10,13]
let res4 =arr.some(item=>{
return item>35
})
console.log(res4)//输出true
filter
filter用于对数组进行过滤。
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
不会改变原始数组
const arr =[1,30,39,29,10,13]
let res2 =arr.filter(item=>{
return item>20
})
console.log(res2)//输出[30, 39, 29] 找出大于20的数组元素
reduce
reduce()逐个遍历数组元素,并对每个数组元素进行累计处理,返回累计处理的结果
不会改变原数组
const arr =[1,30,39,29,10,13]
let sum = arr.reduce((acc,cur)=>{
return acc+cur
},0)//这里的0代表了累计相加的起始值
console.log(sum)//将数组中的所有元素进行累加
foeach
forEach()方法用于调用数组的每个元素,并将元素传递给回调函数。
不会改变原数组
const arr = [1, 2, 3, 4]
arr.forEach((item,index,array)=>{
console.log(item)
})
//依次输出数组中的元素
map
map()它返回一个新的数组,新返回数组中的每个元素为原始数组的每一个元素分别调用map中的回调函数处理后的值。
不会改变原数组
const arr = [1, 2, 3, 4]
let aa = arr.map(i => {
return i ** 5 //次方 **
})
console.log(aa)
//输出原数组中各个元素的5次方
伪数组转数组 Array.from(arguments) 或[…arguments]
function abc() {
console.log(Array.from(arguments));
//展开运算符,扩展运算符
console.log([...arguments])
}
abc(1,2,3)
字符串方法
charAt
charAt()从字符串中获取单个字符
不会改变原字符串
let str="abcd"
console.log(str.charAt(0))//输出下标为0的值 a
split
split()把一个字符串分割成字符串数组
不会改变原字符串
const str = 'The quick brown fox jumps over the lazy dog.';
//需求以空格相隔,分割字符串组成数组
console.log(str.split(" "))
//输出["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog."]
//若不带空格 字符串中每个字符都将作为一个字符串元素,然后组成数组
indexOf
indexOf() 返回某个指定的字符串值在字符串中首次出现的位置
let str="dog dog dog"
console.log(str.indexOf("dog"))//输出第一次出现的位置 输出0
lastIndexOf
与indexOf()相反 即输出返回指定的字符串值最后出现的位置
let str="dog dog dog"
console.log(str.lastIndexOf("dog"))//最后一次出现的位置 输出8
search
search() 方法用于检索字符串中是否含有指定的子字符串,或与正则表达式相匹配的子字符串。
若字符串中没有则返回-1
let str="dog dog dog"
console.log(str.search("dog"))
console.log(str.search(/^dog/))//此为从头寻找
console.log(str.search(/dog$/))//此为从尾部寻找
match
match() 可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
let str="dog dog dog"
console.log(str.match(/dog/))//输出["dog", index: 0, input: "dog dog dog"]
substring
substring() 提取字符串中两个指定的索引号之间的字符(半闭合)
注意:开始索引不能用负数
不会改变原字符串
let str="abcde"
console.log(str.substring(2,4))//输出cd
console.log(str.substring(2))//输出cde 即索引2之后所有的字符
substr
substr() 方法可在字符串中提取从起始下标开始的指定数目的字符。
与substring()相不同的点在于后一位是指定的数目而不是截止的索引号。
不会改变原字符串
let time = "2022-08-11 09:11:23"
console.log(time.substr(0,10))//输出2022-08-11
slice
slice() 提取字符串的某个部分,并以新的字符串返回被提取的部分
提取从起始索引到截止索引(不包括截止索引的字符)的字符(半闭合)
类似数组中的slice()
不会改变原字符串
let time = "2022-08-11 09:11:23"
console.log(time.slice(0,10))
//输出2022-08-11 即提取从起始索引0到索引10(不包括索引10的字符)的字符
concat
concat() 字符串拼接
不会改变原字符串
let str="abcde"
let time = "2022-08-11 09:11:23"
console.log(str.concat(time))
//输出abcde2022-08-11 09:11:23
replace
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
不会改变原字符串
let str="abcde"
let time = "2022-08-11 09:11:23"
console.log(str.replace("abcd",time))
//输出2022-08-11 09:11:23e 即替换啊abcd的内容
trim
trim() 方法用于删除字符串的头尾空白符
空白符包括:空格、制表符 tab、换行符等其他空白符等。
不会改变原字符串
var str = " helloworld ";
console.log(str.trim())
//输出helloworld 不带空格
toUpperCase
toUpperCase() 方法用于把字符串转换为大写。
不会改变原字符串
var str = "helloworld";
console.log(str.toUpperCase())
toLowerCase
toLowerCase() 方法用于把字符串转换为小写。
不会改变原字符串
var str2 = " HELLOWORLD ";
console.log(str2.toLowerCase().trim())
console.log(str2.toLowerCase().trim()) 此为链式调用