数组方法
替换 删除 插入(万能)
array.splice( )
let arr = ['a', 'b', 'c', 'd']
// 替换 参数: 1)起点 2)长度 3)用什么替换
arr.splice(2, 1, 'x','y')
console.log( arr ) // ['a', 'b', 'x', 'y', 'd']
let arr = ['a', 'b', 'c', 'd']
// 插入 参数: 1)起点 2)长度 3)用什么替换 长度为0 就是插入了
arr.splice(2, 0, 'x','y')
console.log( arr ) // ['a', 'b', 'c', 'x', 'y', 'd']
let arr = ['a', 'b', 'c', 'd']
// 删除 参数: 1)起点 2)长度
arr.splice(2, 1)
console.log( arr ) // ['a', 'b', 'd']
遍历
for…of
let arr = ['a', 'b', 'c', 'd']
for(let v of arr) {
console.log( v )
}
//a,b,c,d
map
返回一个新数组. 新数组的元素值为 匿名函数 的返回值
let arr = [10, 20, 30, 40]
let arrs=arr.map(function (value, index) {
return value + 7
})
console.log(arrs)//[17, 27, 37, 47]
filter
当匿名函数返回 true 时, 相应的元素 存储会在 一个返回的新数组中. 当然, 原数组不变(不删除)
let arr = [23,42,55,27,86,49]
let brr = arr.filter(function(value, index){
if (value%2 == 0) {
return true;
}
})
console.log( brr )//42,86
forEach
let arr = ['a', 'b', 'c', 'd']
arr.forEach(function(value, index){
console.log(value, index)
})
//a,0 b,1 c,2 d,3
包含
let arr = ['love', 'like', 'miss', 'fancy']
// 数组中是否包含 'miss' 元素值
let res = arr.includes('miss')
console.log( res ) // true
合并
let arr = ['a', 'b', 'c']
let brr = ['x', 'y', 'z']
arr.concat(brr) // arr 与 brr 合并, 返回一个新数组
排序
let arr = [87, 65, 58, 34, 21, 56, 7]
// 对数组进行排序. 默认是以字符串排序.
// a, b 代表数组中任意两个元素比较, 根据数值比较结果进行排序
arr.sort(function(a, b){
return a - b
})
// [7, 21, 34, 56, 58, 65, 87]
array.push()
在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。注意,该方法会改变原数组。
var a = [];
a.push(1) // 1
a.push('a') // 2
a.push(true, {}) // 4
console.log( a ); //[1, 'a', true, {}]
array.pop()
用于删除数组的最后一个元素,并返回该元素。注意,该方法会改变原数组
var a = ['a', 'b', 'c'];
a.pop() // 'c'
console.log( a );// ['a', 'b']
array.unshift()
在数组头部插入元素, 并返回数组的长度. 该方法会改变原数组
var a = ['a', 'b', 'c']
a.unshift('x','y')
console.log( a ) // ['x', 'y', 'a', 'b', 'c']
array.shift()
从数组头部移除一个元素, 并返回该元素的值. 该方法改变原数组
var a = ['a', 'b', 'c']
a.shift()
console.log( a ) // ['b', 'c']
截取
slice()
用于提取原数组的一部分,返回一个新数组,原数组不变。
它的第一个参数为起始位置(从0开始),第二个参数为终止位置(但该位置的元素本身不包括在内)。 如果省略第二个参数,则一直返回到原数组的最后一个成员。
var a = ['a','b','c','d','e'];
console.log(a.slice(0)) // "a", "b", "c", "d", "e"]
console.log(a.slice(1)) // ["b", "c", "d", "e"]
console.log(a.slice(1,3)); // ["b", "c"]
array.indexOf()
返回 元素值 第一次出现的下标. 没有该值,会返回 -1
let arr = ['a','b','b','c']
let index = arr.indexOf('b')
console.log(index)
//1
array.find()
返回第一个让匿名函数结果为true的 元素值
let arrs = [0, 2, 5, 8, 29, 4, -1, 9]
// 从数组中 获取第一个 >5 的元素, 返回元素值
var arr=arrs.find(function (val, index) {
if (val > 5) {
return true; // 终止遍历
}
return false;
})
console.log(arr)//8
array.findIndex()
返回第一个符合条件的元素的下标
let arrs = [0,2,4,6,7,9]
let r = arrs.findIndex(function(val, index){
if (val>5) {
return true;
}
})
//3