JavaScript数组和字符串的方法
Posted 一位不愿透露姓氏的张先生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript数组和字符串的方法相关的知识,希望对你有一定的参考价值。
数组的所有方法
- join():数组转字符串(原数组不会发生改变)
let arr = ['a','b','c']
let newArr = arr.join('')//参数可以是空格 逗号 连字符等
console.log(newArr)//abc
console.log(arr)//['a','b','c']
- push():向数组的末尾添加一个或多个元素,并返回新的长度(原数组发生改变)
let arr = [1,2,3]
arr.push(4)
console.log(arr)//[1,2,3,4]
- pop():删除数组的最后一个元素(原数组发生改变)
let arr = ['a','b','c']
arr.pop()
console.log(arr)//["a", "b"]
- shift():删除数组的第一个元素(原数组发生改变)
let arr = ['a','b','c']
arr.shift()
console.log(arr)//["b", "c"]
- unshift():向数组的首部添加一个或多个元素,并返回新的长度(原数组发生改变)
let arr = ['a','b','c']
arr.unshift('1','2','3')
console.log(arr)//["1", "2", "3", "a", "b", "c"]
- splice(index , howmany , item1,.....,itemX):数组的万能方法(原数组发生改变)
index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置
howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目
item:可选。向数组添加的新项目
let arr = ["1", "2", "3", "a", "b", "c"]
arr.splice(0,1)//["2", "3", "a", "b", "c"]
arr.splice(1,1)//["1", "3", "a", "b", "c"]
arr.splice(-1,1)//["1", "2", "3", "a", "b"]
arr.splice(-2,2)//["1", "2", "3", "a"]
- sort():数组排序(原数组发生改变)
//升序排列
function sortArr(a,b){
return a-b
}
let arr = [1,4,6,2,8,3,9,5,10,7]
console.log(arr.sort(sortArr))//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
//降序排列
function sortArr(a,b){
return b-a
}
let arr = [1,4,6,2,8,3,9,5,10,7]
console.log(arr.sort(sortArr))//[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
- reverse():数组倒序(原数组发生改变)
let arr = [1,2,3,4,5]
arr.reverse()
console.log(arr)//[5, 4, 3, 2, 1]
- concat():连接数组(原数组不会发生改变)
let arr1 = [1,2,3]
let arr2 = ["a","b","c"]
let arr3 = arr1.concat(arr2)
console.log(arr3)//[1, 2, 3, "a", "b", "c"]
console.log(arr1)//[1,2,3]
console.log(arr2)//["a","b","c"]
- slice(start,end):数组的截取(原数组不会发生改变)
start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推
end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素
let arr = ['a','b','c','d','e','f','g']
arr.slice(1,2)//从索引1开始,到索引2结束,但不包括索引2:["b"]
arr.slice(1,-2)//从索引1开始,到倒数第二个索引结束:["b", "c", "d", "e"]
- 注意到slice()的起止参数包括开始索引,不包括结束索引。
- 如果不给slice()传递任何参数,它就会从头到尾截取所有元素。利用这一点,我们可以很容易地复制一个Array:
var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
var aCopy = arr.slice();
console.log(aCopy)//['A', 'B', 'C', 'D', 'E', 'F', 'G']
- 2个索引方法:indexOf() 和 lastIndexOf()
- 两个方法都返回要查找的项在数组中首次出现的位置,在没找到的情况下返回-1
5个迭代方法:
currentValue:必需。当前元素
index:可选。当前元素的索引值
arr:可选。当前元素所属的数组对象
thisValue:可选。传递给函数的值一般用 "this" 值.如果这个参数为空, "undefined" 会传递给 "this" 值- forEach():对数组进行遍历循环,这个方法没有返回值 =>jquery中的each()方法
语法: arr.forEach(function(currentValue,index,arr){ //do something },thisValue)
- map():指“映射”,方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
语法: arr.map(function(currentValue,index,arr){ //do something },thisValue)
- filter():“过滤”功能,方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素 =>jquery中的grep()
语法: arr.map(function(currentValue,index,arr){ //do something },thisValue)
- every():判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true
语法: arr.map(function(currentValue,index,arr){ //do something },thisValue)
- some():判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true
语法: arr.some(function(currentValue,index,arr){ //do something },thisValue)
2个归并方法:reduce()、reduceRight()(原数组不会发生改变)
total :必需。初始值, 或者计算结束后的返回值
cur :必需。当前元素
index :可选。当前元素的索引
arr:可选。当前元素所属的数组对象
initialValue:可选。传递给函数的初始值- reduce()方法从数组的第一项开始,逐个遍历到最后
- reduceRight()则从数组的最后一项开始,向前遍历到第一项
语法: arr.reduceRight(function(total,cur,index,arr){ //do something }, initialValue)
ES6数组新增方法:
- Array.from()方法是用于类似数组的对象(即有length属性的对象)和可遍历对象转为真正的数组
- Array.of()方法是将一组值转变为数组,参数不分类型,只分数量,数量为0返回空数组
- find()方法返回通过测试(函数内判断)的数组的第一个元素的值。方法为数组中的每个元素都调用一次函数执行。当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。如果没有符合条件的元素返回 undefined
- findIndex() findIndex和find差不多,不过默认返回的是索引,如果没有符合条件的元素返回 -1
- 遍历数组方法 keys()、values()、entries()这三个方法都是返回一个遍历器对象,可用for...of循环遍历,唯一区别:keys()是对键名的遍历、values()对键值的遍历、entries()是对键值对的遍历
- includes()方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false
- fill()方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引
- copyWithin()方法用于从数组的指定位置拷贝元素到数组的另一个指定位置中,会覆盖原有成员
字符串的所有方法
- concat字符串拼接
- toLowerCase把字符串转为小写
- toUpperCase把字符串转为大写
- charAt指定下标的字符 空格也算一个字符 超出length为空字符串
- charCodeAt指定下标字符的unicode编码 空格为32 超出length为NaN
- indexOf指定某个字符第一次出现的位置 没有找到返回-1 第二个参数表示从哪个下标开始查找 默认为0
- lastIndexOf指定某个字符最后一次出现的位置 没有找到返回-1 第二个参数表示从哪个下标开始查找 默认为最后一个字符开始
- slice返回提取出的字符串 如果只有一个参数,则提取开始下标到结尾处的所有字符串 两个参数,提取下标为2,到下标为7但不包含下标为7的字符串 如果是负数,-1为字符串的最后一个字符。提取从下标-7开始到下标-2但不包含下标-2的字符串。前一个数要小于后一个数,否则返回空字符串
- subString 用法和slice一样 但参数不接受负值
- subStr 返回从指定下标开始指定的字符串 如果没有指定length,返回从下标开始处结尾处的所有字符串
- split 把字符串转为数组
- replace 在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
- match 返回一个所有查找的关键字的内容数组
javascript Math 对象方法
- ceil(x)对数向上取整
- floor(x)对数向下取整
- max(x,y)取x y中的最大值
- min(x,y)取x y中的最小值
- random()取随机数
- round(x)四舍五入
基本数据类型:Number、String、Boolean、Null、 Undefined、Symbol(ES6)
引用数据类型:Object
JavaScript中的假值:0 false "" null NaN undefinde
以上是关于JavaScript数组和字符串的方法的主要内容,如果未能解决你的问题,请参考以下文章