数组常用方法
push:向数组的末尾增加一项 返回值是数组的新长度
unshift:向数组开头增加一项 返回值是数组的新长度
pop:删除数组的末尾项 返回值是删除的数组项
shift:删除数组开头项 返回被删除的开头项目
splice:删除数组中的任意项 返回值是被删除的数组项
删除(两个参数)splice(index,count)
替换(三个参数)splice(index,count,value)
插入(多个参数) splice(index,0,插入的项)
slice:截取数组 返回值是截取到的新数组
两个参数:(startidnex,endindex)包前不包后
一个参数: 截取到最后
拼接:
concat:把一个数组和另一个数组拼接在一起 返回拼接好的数组
join:把数组中的每一项 按照指定的分隔符拼接成字符串
排序:
reverse:倒序数组 返回值倒序数组 原有数组改变
sort:根据匿名函数进行冒泡排序 b-a倒序 a-b升序;参数时回调函数(a, b) =>a - b/(a, b) =>b-a
eg: let arr = [2,10,6,1,4,22,3]
console.log(arr.sort()) // [1, 10, 2, 22, 3, 4, 6]
let arr1 = arr.sort((a, b) =>a - b)
console.log(arr1) // [1, 2, 3, 4, 6, 10, 22]
遍历数组:
forEach: 循环遍历数组 参数是一个匿名函数 默认返回为undefined
arr.forEach(callback) 遍历数组,无return
callback的参数: value --当前索引的值
index --索引
array --原数组
map:循环遍历数组 参数是一个匿名函数
arr.map(callback) 映射数组(遍历数组),有return 返回一个新数组
callback的参数: value --当前索引的值
index --索引
array --原数组
arr.filter(callback) 过滤数组,返回一个满足要求的数组
let arr = [1,2,3,4,5]
let arr1 = arr.filter( (i, v) => i < 3)
console.log(arr1) // false
arr.every(callback) 依据判断条件,数组的元素是否全满足,若满足则返回ture
let arr = [1,2,3,4,5]
let arr1 = arr.every( (i, v) => i < 3)
arr.some() 依据判断条件,数组的元素是否有一个满足,若有一个满足则返回ture
let arr = [1,2,3,4,5]
let arr1 = arr.some( (i, v) => i < 3)
console.log(arr1) // true
arr.reduce(callback, initialValue) 迭代数组的所有项,累加器,数组中的每个值(从左到右)合并,最终计算为一个值
  参数: callback: previousValue 必选 --上一次调用回调返回的值,或者是提供的初始值(initialValue)
currentValue 必选 --数组中当前被处理的数组项
index 可选 --当前数组项在数组中的索引值
array 可选 --原数组
     initialValue: 可选 --初始值
   实行方法:回调函数第一次执行时,preValue 和 curValue 可以是一个值,如果 initialValue 在调用 reduce() 时被提供,那么第一个 preValue 等于 initialValue ,并且curValue 等于数组中的第一个值;如果initialValue 未被提供,那么preValue 等于数组中的第一个值.
let arr = [0,1,2,3,4]
let arr1 = arr.reduce((preValue, curValue) =>
preValue + curValue
)
console.log(arr1) // 10
arr.reduceRight(callback, initialValue) 与arr.reduce()功能一样,不同的是,reduceRight()从数组的末尾向前将数组中的数组项做累加。
查找索引:
indexOf:返回获取项在数组中的索引,查找某个元素的索引值,若有重复的,则返回第一个查到的索引值若不存在,则返回 -1
lastIndexOf:返回获取项在数组中出现的最后一次索引
arr.find(callback) 找到第一个符合条件的数组成员
let arr = [1,2,3,4,5,2,4]
let arr1 = arr.find((value, index, array) =>value > 2)
console.log(arr1) // 3
arr.findIndex(callback) 找到第一个符合条件的数组成员的索引值
let arr = [1,2,3,4,5]
let arr1 = arr.findIndex((value, index, array) => value > 3)
console.log(arr1) // 3
arr.includes() 判断数中是否包含给定的值
let arr = [1,2,3,4,5]
let arr1 = arr.includes(2)
console.log(arr1) // ture
let arr2 = arr.includes(9)
console.log(arr2) // false
let arr3 = [1,2,3,NaN].includes(NaN)
console.log(arr3) // true
ps:与indexOf()的区别:
1 indexOf()返回的是数值,而includes()返回的是布尔值
2 indexOf() 不能判断NaN,返回为-1 ,includes()则可以判断
转化为数组:
Array.from() 将伪数组变成数组,就是只要有length的就可以转成数组。 ---es6
let str = '12345'
console.log(Array.from(str)) // ["1", "2", "3", "4", "5"]
let obj = {0:'a',1:'b',length:2}
console.log(Array.from(obj)) // ["a", "b"]
Array.of() 将一组值转换成数组,类似于声明数组 ---es6
let str = '11'
console.log(Array.of(str)) // ['11']
等价于
console.log(new Array('11')) // ['11']
arr.keys() 遍历数组的键名
let arr = [1,2,3,4]
let arr2 = arr.keys()
for (let key of arr2) {
console.log(key); // 0,1,2,3
}
arr.values() 遍历数组键值
let arr = [1,2,3,4]
let arr1 = arr.values()
for (let val of arr1) {
console.log(val); // 1,2,3,4
}
arr.entries() 遍历数组的键名和键值
let arr = [1,2,3,4]
let arr1 = arr.entries()
for (let e of arr1) {
console.log(e); // 1,2,3,4
}
字符串常用方法
根据索引值查找字符串的值
string.charAt(index)返回给定位置的那个字符值;
参数:index指的是字符串中某个位置的数字,即字符在字符串中下标;
返回值:字符串string的第index个索引对应的字符。
var str = 'abcdefg';
console.log(str.charAt(3));//d
根据字符值查找索引值
string.indexOf(substring,start)从一个字符串搜索指定的子字符串,返回子字符串的位置(没有找到返回-1)。
参数:
substring :要在字符串string中检索的子串(可以只有一个值,也可以是多个值的子串)。
start :一个可选的整数参数,声明了在字符串String中开始检索的位置。它的默认取值是0,从字符串的第一个字符开始检索。
返回值:
在string中的start位置之后,substring第一个值在string中第一次出现的位置。如果没有找到,则返回-1。
var str = 'abcedcbadefghi';
//从第5个索引(值为c)开始查找,找不到,返回-1;
console.log(str.indexOf('dc',5));//-1
//从str的第一位开始往后查找,返回子串中第一个值d在str中出现的索引位。
console.log(str.indexOf('dc',0));//4
String.lastIndexOf(start,value ) 从后向前检索一个子字符串;
参数同上
返回值:
在string中的start位置之前,substring第一个值在string中第一次出现的位置。如果没有找到,则返回-1。
var str = 'abcedcbadefghi';
// 此时是从第一位开始往前查找,找不到,返回-1.
console.log(str.lastIndexOf('ed',0));//-1
//从str的第11位值g开始往前找,最后一次出现'ed'的位置。
console.log(str.lastIndexOf('ed',11));//3
//从str的第11位值g开始往前找,最后一次出现e的位置。
console.log(str.lastIndexOf('e',11));//9
String.search( ) 检索与正则表达式相匹配的子串
参数:
regexp 要在字符串string中检索的RegExp对象,该对象具有指定的模式。
如果该参数不是RegExp对象,则首先将它传递给RegExp()构造函数,把它转换成 RegExp对象。
返回值:
string中第一个与regexp相匹配的子串的起始位置。如果没有找到任何匹配的子 串,则返回-1。
var str = 'abcedcbadefghi';
console.log(str.search('ed'));//3
string.slice(start, end)截取字符串的方法
参数:
start:索引开始的位置。倒着数的话为负数,-1代表最后一位的索引。
end:索引结束的位置。如果没有,默认截取到最后一位;
返回值:
一个新字符串;
从start开始(包括start)到end为止(不包括end)的所有字符;
var str = 'abcedcbadefghi';
console.log(str.slice(2,5));//ced
console.log(str);//abcedcbadefghi
string.substr(start, length) 抽取一个子串
参数:
start:索引开始的位置。倒着数的话为负数,-1代表最后一位的索引。
length:子串中的字符数。如果没有指定length,返回的字符串包含从start到结尾的字符。
返回值:
一个新字符串;
从string的start处(包括start所指的字符)开始的1ength个字符。
var stringValue = "hello world";
alert(stringValue.substr(3)); //"lo world" ;
alert(stringValue.substr(3,7)); //"lo worl"
string.substring(from, to):返回字符串的一个子串
参数:
from 一个整数,截取开始的索引位置。
to 索引结束的位置。如果没有,默认截取到最后一位;
返回值:
一个新字符串,其长度为to-from,从from开始(包括from)到to为止(不包括to)的所有字符。
var stringValue = "hello world";
alert(stringValue.substring(3,7)); //"lo w"
string.replace(regexp, replacement):是查找并替换的操作。
参数
regexp:声明了要替换的模式的RegExp对象。如果该参数是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换成RegExp对象。
replacement:一个字符串,声明的是替换文本或生成替换文本的函数。
//替换
var text = "cat,bat,sat,fat";
var result = text.replace("at","ond");
alert(result); //"cond,bat,sat,fat"
string.match(regexp)字符串的遍历查找,找到一个或多个正则表达式的匹配
返回值:存放匹配的数组.
var text = "cat,bat,sat,fat";
var pattern = /.at/;
var matches = text.match(pattern);
console.log(matches); //["cat"]
var str = 'abcedcbadefghi';
console.log(str.match())//['']
console.log(str.match('a'))//['a']
string.split(delimiter, limit)将字符串分割成字符串数组
参数:
delimiter ,必须有!!!字符串或正则表达式,从该参数指定的地方分割string。
limit ,这个可选的整数指定了返回的数组的最大长度。
如果设置了该参数,返回的子串不会多于这个参数指定的数字。
如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
返回值:
一个字符串数组,是通过在delimiter指定的边界处将字符串string分割成子串创建的。返回的数组中的子串不包括delimiter自身。
注意,String.split()执行的操作与Array.join()执行的操作相反。
将一个字符串进行倒序输出
var str = 'abcdefg';
var str3 = str.split('').reverse().join('');
console.log(str3);//gfedcba