JavaScript关于数组方法以及字符串方法的总结

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()) 此为链式调用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值