Js数组常用的方法
- 1,push 后增,数组末尾添加元素,并返回数组的最新长度
var a = [1, 2, 3]
var b = a.push(4)
console.log(a) // [1,2,3,4]
console.log(b) // 4
- 2,pop 后删,数组末尾删除元素,返回被删元素
var a = [1, 2, 3]
var b = a.pop()
console.log(a) // [1,2]
console.log(b) // 3
- 3,unshift 前增,数组开头添加,返回数组的最新长度
var a = [1, 2, 3]
var b = a.unshift(0)
console.log(a) // [0,1,2,3]
console.log(b) // 4
- 4,shift 前删,数组开头删除,返回被删元素
var a = [1, 2, 3]
var b = a.shift()
console.log(a) // [2,3]
console.log(b) // 1
- 5,splice 修改删除
splice(index, length, 增加的元素1,增加的元素2,...,增加的元素n)
表示从index开始删除length个元素,并从index开始新增元素1~N,放回被删除的数组里
对数组进行删除修改,返回被删除的元素组成的数组,改变原数组
var a = [1, 2, 3, 4, 5, 6]
var b = a.splice(1, 3, 100, 200, 300)
console.log(a) // [1, 100, 200, 300, 5, 6]
console.log(b) // [2, 3, 4]
- 6,slice 剪切
slice(startIndex, endIndex) 返回从startIndex开始(包括),到endIndex(不包括)之间的元素组成的数组
返回新数组,不改变原数组
var a = [1, 2, 3]
var b = a.slice(0, 2)
var c = a.slice()
console.log(a) // [1,2,3]
console.log(b) // [1,2]
console.log(c) // [1,2,3]
- 7,join 数组转为字符串
不改变原数组,返回转换后的字符串
var a = [1, 2, 3, 4, 5, 6]
console.log(a.join('|')) // 1|2|3|4|5|6
console.log(a) // [1, 2, 3, 4, 5, 6]
- 8,concat 拼接
用来合并两个或多个数组
返回新数组,不改变原数组
var a = [1, 2, 3]
var b = [4, 5, 6]
var c = a.concat(b)
console.log(a) // [1,2,3]
console.log(b) // [4,5,6]
console.log(c) // [1,2,3,4,5,6]
- 9,sort 排序
按ascii码排序,改变原数组,返回排序后的数组
var a = ['a', 'b', 'd', 'c']
var b = a.sort()
console.log(a) // ['a', 'b', 'c', 'd']
console.log(b) // ['a', 'b', 'c', 'd']
- 10,reverse颠倒顺序
返回的是颠倒后的数组,改变原数组
var a = [1, 2, 3, 4, 5, 6]
var b = a.reverse()
console.log(a) // [6, 5, 4, 3, 2, 1]
console.log(b) // [6, 5, 4, 3, 2, 1]
- 11,indexOf和 lastIndexOf
indexOf(某元素,startIndex) 从startIndex开始,查找某元素在数组中首次出现的位置,不存在返回-1
lastIndexOf(某元素,startIndex)和indexOf相同,区别在于从尾部向首部查询
不改变原数组,返回找到的index,否则返回-1
若不使用下标,一般用includes代替indexOf
var str = 'JerryJerry'
console.log(str.indexOf('r')) // 2
console.log(str.lastIndexOf('J')) // 4
- 12,filter过滤
返回数组中满足条件的元素组成的新数组,不改变原数组
var a = [1, 2, 3, 4, 5, 6, 7, 8]
var b = a.filter((current, index, array) => {
return current > 4
})
console.log(a) // [1, 2, 3, 4, 5, 6, 7, 8]
console.log(b) // [5, 6, 7, 8]
- 13,map格式化数组,改变内容
根据需求格式化原数组,返回格式化后的数组,不改变原数组
var a = [1, 2, 3, 4, 5, 6]
var b = a.map((current, index, array) => {
return current + 1
})
console.log(a) // [1,2,3,4,5,6]
console.log(b) // [2,3,4,5,6,7]
- 14,every
对数组的每一项都运行给定的函数,若每一项都返回true则返回true,任一不符合返回false
var a = [2, 3, 4, 5, 6, 7, 8]
var b = a.every((cur, idx, ary) => {
return cur > 1
})
var c = a.every((cur, idx, ary) => {
return cur < 6
})
console.log(a) // [1,2,3,4,5,6,7,8]
console.log(b) // true
console.log(c) // false
- 15,some
对数组的每一项都运行给定的函数,若存在一项或多项返回true,则返回true,任一项符合返回true
var a = [1, 2, 3, 4, 5, 6]
var b = a.some((cur, idx, ary) => {
return cur > 3
})
var c = a.some((cur, idx, ary) => {
return cur < 1
})
console.log(a) // [1, 2, 3, 4, 5, 6]
console.log(b) // true
console.log(c) // false
- 16.forEach 数组遍历
var arr = [100, 200, 300, 400]
arr.forEach(e => console.log(e)) // 100 200 300 400
- 17,toString
JS中的所有对象都具有toString方法,它把一个变量隐式转为字符串
var arr = [100, 200, 300]
var str = arr.toString()
console.log(arr) // [100, 200, 300]
console.log(str) // 100, 200, 300
- 18,slice
从已有的数组中返回指定的元素 不改变原数组
slice(start, end) start开始下标 => end结束下标(不含)
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
var str = arr.slice(2, 5)
console.log(arr) // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
console.log(str) // [3, 4, 5]
网友评论