- push
改变原数组
arr: [1, 2, 3, 4, 56]
console.log(this.arr.push(9)) // 返回数组长度
console.log(this.arr) // [1, 2, 3, 4, 56, 9]
- pop
改变原数组
console.log(this.arr.pop()) // 56
console.log(this.arr) // [1, 2, 3, 4]
- unshift
改变原数组
console.log(this.arr.unshift(0)) // 长度 6
console.log(this.arr) // [0, 1, 2, 3, 4, 56]
- shift
改变原数组
console.log(this.arr.shift()) // 删除的元素 1
console.log(this.arr) // [2, 3, 4, 56]
- arr.splice(index,howmany, item1,...)
改变原数组
howmany-> 删除的个数
item -> 添加的元素
this.arr.splice(1, 2, 'hehe', 'haha')
console.log(this.arr) // [1, 'hehe', 'haha', 4, 56]
- arr.sort(function (a,b) { return a-b })
改变原数组
arr: [1, 2, 3, 4, 56, 6, 5, 4, 3]
this.arr.sort(function (a, b) { return a - b })
console.log(this.arr) // [1, 2, 3, 3, 4, 4, 5, 6, 56]
- arr.reverse()
改变原数组
this.arr.reverse()
console.log(this.arr) // [56, 4, 3, 2, 1]
- arr.concat([])
arr: [1, 2, 3, 4, 56]
const newArr = this.arr.concat([9, 8, 7])
console.log(newArr) // [1, 2, 3, 4, 56, 9, 8, 7]
console.log(this.arr) // [1, 2, 3, 4, 56]
- arr.toString()
const arr = ['A1', 'A2']
const str = arr.toString()
console.log(str) // A1,A2
- arr.join()
const arr = ['A1', 'A2']
const str = arr.join()
console.log(str) // A1,A2
- arr.indexOf()
查找某个元素的索引值,若有重复的,则返回第一个查到的索引值若不存在,则返回 -1
const arr = ['A1', 'A2', 'A1']
const index = arr.indexOf('A1')
console.log(index) // 0
- arr.slice(start,end)
切去索引值start到索引值end的数组,不包含end索引的值,返回值是切出来的数组
const arr = [1, 2, 3, 4, 5]
const newArr = arr.slice(0, 2)
console.log(newArr) // [1, 2]
- arr.forEach(callback)
arr.forEach 没有返回值, 在forEach循环里面写return不会生效
会影响原数组
item 每一项
index 索引
array 数组
const arr = [{ name: 'text' }, { name: 'zhangsan' }, { name: 'lisi' }]
arr.forEach((item, index, array) => {
item.name = item.name + '9999'
})
console.log(arr)
// (3) [{…}, {…}, {…}]
// 0: {name: 'text9999'}
// 1: {name: 'zhangsan9999'}
// 2: {name: 'lisi9999'}
- arr.some
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测
const arr = [3, 5, 7, 8, 9]
const res = arr.some(item => {
return item > 100
})
console.log(res, 'res') // false
- arr.every
用于检测数组所有元素是否都符合指定条件, 返回true 或者false
如果有一个条件不满足条件,就不在执行检测
const arr = [3, 5, 7, 8, 9]
const res = arr.every(item => {
return item > 2
})
console.log(res, 'res') // true
- arr.includes()
arr.match(regexp)
包含返回true, 不包含返回false
- arr.match()
返回存放匹配结果的数组
没有返回null
- arr.reduce
接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
const arr = [{ name: 'lsi' }, { name: 'xixi' }]
const res = arr.reduce((tol, item, index, arr) => {
tol.push(item.name)
return tol
}, []) // 可以自定义tol是数组或其他格式
console.log(res, 'res') // ['lsi', 'xixi']
- arr.map
返回一个新数组, 数组中的元素为原始数组调用函数处理后的值
const arr = [{ name: 'lsi' }, { name: 'xixi' }]
const res = arr.map(item => {
item.age = 90
return item
})
console.log(res, 'ddd')
// 返回数据
(2) [{…}, {…}] {name: 'lsi', age: 90}{name: 'xixi', age: 90}
- arr.find()
返回被找到的对象
- 返回通过测试的第一个元素的值
- 没有找到返回undefined
- 不会查找空数组
const arr = [{ name: 'lsi' }, { name: 'xixi' }]
const res = arr.find(item => { return item.name === 'xixi' })
const re = arr.find(item => { return item.name === 'nana' })
console.log(res, 'res') // 返回数据 {name: 'xixi'} 'res'
console.log(re, 'res') // undefined 'res'
- 拿到两个数组对象的相同项
const arr = [{ name: 'text' }, { name: 'zhangsan' }, { name: 'lisi' }, { name: 'hehe' }]
const str = [{ n: 'text' }, { n: 'lisi' }]
const newarr = arr.filter(item => {
let temp
str.forEach(e => {
if (item.name === e.n) {
temp = e.n
}
})
return item.name === temp
})
console.log(newarr, 90)
// 0: {name: 'text'}
// 1: {name: 'lisi'}
- Array.isArray() 判断是否为数组
Array.isArray([1, 2, 3]);
// true
Array.isArray({foo: 123});
// false
Array.isArray("foobar");
// false
Array.isArray(undefined);
// false
字符串方法
- str.length
const str = "The full name of China is the People's Republic of China"
console.log(str.length) //57
- str.indexOf(‘content’, index) // index 从哪个索引开始搜索
返回指定文本首次出现的索引, 没有返回-1
const str = "The full name of China is the People's Republic of China"
const res = str.indexOf('full')
console.log(res) // 4
- str.lastIndexOf(‘content’, index) // index 从哪个索引开始搜索
返回指定文本最后一次出现的索引, 没有返回-1
const str = "The full name of China is the People's Republic of China"
const res = str.lastIndexOf('China')
console.log(res) // 51
- str.search()
搜索特定值的字符串,并返回匹配的位置,没有-1
search 没有第二个特定值
const str = "The full name of China is the People's Republic of China"
const res = str.search('China')
console.log(res) // 17
- str.slice(start, end)
截取指定片段, 如果为负数,则从反向截取
如果只有start ,则截取到最后
const str = "The full name of China is the People's Republic of China"
const res = str.slice(3, 17)
console.log(res) //full name of
const str = "The full name of China is the People's Republic of China"
const res = str.slice(-17, -3)
console.log(res) // Republic of Ch
- str.substring(start, end)
与slice相似,只是没有负数
const str = "The full name of China is the People's Republic of China"
const res = str.substring(3, 17)
console.log(res) // full name of
- str,substr(start, length)
与slice相似,第二个参数为长度
如果省略第二个参数,则该 substr() 将裁剪字符串的剩余部分
如果首个参数为负,则从字符串的结尾计算位置
const str = "The full name of China is the People's Republic of China"
const res = str.substr(3, 17)
console.log(res) // full name of Chi
const str = "The full name of China is the People's Republic of China"
const res = str.substr(-7, 5)
console.log(res) // f Chi
- str.replace()
- 用一个值替换在字符串中指定的值
- 返回新的字符串, 只替换首个匹配
- 对大小写敏感
const str = 'Please visit Microsoft and Microsoft!'
var n = str.replace('Microsoft', 'W3School')
console.log(n) // Please visit W3School and Microsoft!
// 忽略大小写
const str = 'Please visit MICROSOFT and Microsoft!'
var n = str.replace(/Microsoft/i, 'W3School')
console.log(n) // Please visit W3School and Microsoft!
// 全局替换
const str = 'Please visit MICROSOFT and Microsoft!'
var n = str.replace(/Microsoft/ig, 'W3School')
console.log(n) // Please visit W3School and W3School!
// 正则表达式替换
const str = 'Doden , John'
const n = str.replace(/(\w+)\s*, \s*(\w+)/ig, '$2 $1')
console.log(n) // John Doden
// 正则 replace函数
var newString = 'abc12345#$*%'.replace(/([^\d]*)(\d*)([^\w]*)/, function (match, p1, p2, p3, str) {
console.log(p1, 'p1') // abc p1
console.log(p2, 'p2') // 12345 p2
console.log(p3, 'p3') // #$*% p3
return [p1, p2, p3].join('-')
})
console.log(newString) // abc-12345-#$*%