字符串、数组和对象方法
一、字符串方法
① indexOf
indexOf(substr[,start])
返回 substr 在字符串 str 中首次出现的位置,从 start 位置开始查找,如果不存在,则返回 -1。不填start则从第0项开始查找 substr传入空字符串 也是返回0 不会返回-1(源码规定)
② lastIndexOf
和indexOf
一样 但是是从最后一项开始查找的
③ includes str.includes(‘要查找的字符串’)
返回布尔值,表示是否找到了参数字符串。
④ replace replace(regexp|substr, newSubStr|function)
第一个参数是要被替换的字符串或者正则表达式
第二个参数是字符串或者放回字符串的一个函数
⑤ 模板字符串方法 `` ES6中提供了模版字符串,用`(反引号)标识,用${}将变量括起来。
⑥ toLowerCase() 和toUpperCase()方法str.toLowerCase()
用于把字符串转换为小写。toUpperCase() 把字符串转换成大写
⑦ padStart()和padEnd()
start用于头部补全 end用于尾部补全padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
⑧ toString()和String()
toString方法可以将数字类型和boolean类型转换成字符串类型 String可以把任意类型转换成字符串类型
⑨ substring(start[,end])
返回从start到end(不包括)之间的字符,若没有end,则截取到最后.
⑩ substr(start[,howmany])
返回从start开始截取,包括start项,截取的数量为howmany(<lenght-1) 返回截取的字符串.start可以为负数
⑪ search()
查找 str 与一个正则表达式是否匹配。如果匹配成功,则返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1
⑫ split(separator,limit)
把字符串分割为字符串数组。分隔符为separator,limit为返回的数组的最大长度
⑬ slice(start,end)
从 start 到 end (不包括)之间的字符,可传负值
⑭ match()
方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。返回一个包含匹配结果的数组,如果没有匹配项,则返回 null。
⑮ trim()
去除字符串首尾的空白字符
⑯ charAt()
返回字符串给定索引位置的字符
⑰ includes(), startsWith(), endsWith()
includes表示字符串中是否含有检测的字符,startWith表示头部是否是检查的字符,endWith表示结尾是否是检查的字符
⑱ repeat()
返回新的字符串 str.repeat(3)表示str这个字符串重复三次
二、数组方法
- 循环方法:
-
forEach:
对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。参数都是function类型,默认有传参,参数分别为:遍历的数组内容;第对应的数组索引,数组本身。
arr.forEach((item,index)=>{ })
item为数组的每一项 index为索引值 -
some: (es5方法)
array.some(function(currentValue[,index,arr),thisValue]){ }
currentValue 为数组中的每一项(必选)
index 为当前的索引
arr 当前元素属于的数组对象
用法:判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
如果 return true,就会立即终止这个数组的后续循环
实例:
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.some((item)=> {
return item < 3;
});
console.log(arr2); //true -
filter :“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(item, index) {
return index % 3 === 0 || item >= 8;
});
console.log(arr2); //[1, 4, 7, 8, 9, 10]
其中item为每一项 index为索引 filter方法不会改变原数 组,而是返回一个新的数组!!!. -
find与findIndex:(es6方法)
数组实例的find()方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。
find()方法的回调函数可以接受三个参数,依次为当前的值、当前的位置和原数组。
数组实例的findIndex()方法的用法与find()方法非常类似,返回第一个符合条件的数组成员的位置(查找到符合条件的索引),如果所有成员都不符合条件,则返回-1。
for in 方法 只能获取数组每一项的索引
var arr = new Array(“first”, “second”, “third”)
for(var item in arr) {
document.write(arr[item]+",");
}
for of 遍历 获取得到是每一项 (es6语法)
for(let value of arr) {
console.log(value)
}); -
map遍历方法 item 是数组的每一项
arr.map(function(item){
console.log(item)
return item
});
返回的是新的数组
- 操作方法
- slice() 可以接受一或者两个参数,即要返回项的起始位置和结束位置,在只有一个参数的情况下,slice()方法返回从该参数指定的位置开始到当前数组末尾的所有项.如果有量的参数,该方法返回起始位置和结束位置之间的项,不包括结束位置的项; 此方法不改变原数组的长度,当传入负数的时候,最后一项为-1项 倒数第二项为-2项,返回新数组,不改变原数组
- splice() arr.splice(index,howmany,item1,…,itemX) index是要删除的第一项 howmany 是删除的项数 item1…itemX 是要插入的项,其实index和howmany为必须得项,不删除需要填写howmany为0; 返回的是被删除的项,是一个新数组; 可以改变原数组
- push(): 可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。改变原数组
- pop():数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。改变原数组
- shift(): 从前面删除元素 返回被删除的元素 改变原数组
- unshift(): 从前面添加元素 返回新数组的长度 改变原数组
- concat(): 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。 arrayObject.concat(arrayX,arrayX,…,arrayX)
- join(): 参数为 以这个参数分割数组成字符串 不改变原数组
- reverse(): 将数组进行反转 改变原数组
- indexOf() 与 lastIndexOf() indexOf() 第一个参数是指需要搜索的字符串 返回索引 找不到返回-1 字符串也可以用这个方法 改变原数组
- every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true;
- sort() 方法用于对数组的元素进行排序,排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序。如果比较数字,需要使用函数作为参数,返回值确定是升序还是降序points.sort(function(a,b){return b-a}); 改变原数组
- includes() 与字符串方法相同 返回布尔类型
- Array.from(‘字符串’) 参数是字符串,可以把这个字符串转换成数组
- 数组去重(ES6): let arr = new Set(array) let newArr=Array.from(arr) newArr就是去重后的新数组 arr是一个set函数的实例对象
三、对象方法
- Object.keys(obj) 枚举出obj中所有的对象的键