增加
push() // 向数组末尾添加元素,并返回数组修改后的长度
var arr = ["Lily","lucy","Tom"];
var count = arr.push("Jack","Sean");
console.log(count); // 5
console.log(arr); // ["Lily", "lucy", "Tom", "Jack", "Sean"]
unshift() // 将参数添加到原数组的开头,并返回数组的长度
var arr = ["Lily","lucy","Tom"];
var count = arr.unshift("Jack","Sean");
console.log(count); // 5
console.log(arr); //["Jack", "Sean", "Lily", "lucy", "Tom"]
concat() // 将参数添加到原数组中
var arr = [1,3,5,7];
var arrCopy = arr.concat(9,[11,13]);
console.log(arrCopy); //[1, 3, 5, 7, 9, 11, 13]
console.log(arr); // [1, 3, 5, 7](原数组未被修改)
删除
pop() // 移除数组最后一项,返回移除的那个值,减少数组的length
var item = arr.pop();
console.log(item); // Sean
console.log(arr); // ["Lily", "lucy", "Tom", "Jack"]
shift() // 删除原数组的第一项,并返回删除元素的值,如果数组为空则返回undefined
var item = arr.shift();
console.log(item); // Jack
console.log(arr); // ["Sean", "Lily", "lucy", "Tom"]
查找
slice() // 返回从原数组中指定开始下标到结束下标之间的项组成的新数组,slice()方法可以接收一或两个参数,既要返回的起始位置和结束位置,在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项,如果有两个参数,该方法返回起始和结束位置之间的项--但不包括结束位置的项
var arr = [1,3,5,7,9,11];
var arrCopy = arr.slice(1);
var arrCopy2 = arr.slice(1,4);
var arrCopy3 = arr.slice(1,-2);
var arrCopy4 = arr.slice(-4,-1);
console.log(arr); //[1, 3, 5, 7, 9, 11](原数组没变)
console.log(arrCopy); //[3, 5, 7, 9, 11]
console.log(arrCopy2); //[3, 5, 7]
console.log(arrCopy3); //[3, 5, 7]
console.log(arrCopy4); //[5, 7, 9]
indexOf() // 接收两个参数:要查找的项和(可选的)表示查找的起点位置的索引,其中,从数组的开头(位置0)开始向后查找
lastIndexOf() // 接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。
var arr = [1,3,5,7,7,5,3,1];
console.log(arr.indexOf(5)); //2
console.log(arr.lastIndexOf(5)); //5
console.log(arr.indexOf(5,2)); //2
console.log(arr.lastIndexOf(5,4)); //2
console.log(arr.indexOf("5")); //-1
splice
splice() // 删除、插入和替换
删除:指定两个参数:要删除的第一项的位置和要删除的项数
插入:可以向指定位置插入任意数量的项,只需提供3个参数:起始位置、(0)要删除的项数、和要插入的项
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定三个参数:起始位置、要删除的项数和要插入的任意数量的项,插入的项数不必与删除的项数相等
var arr = [1,3,5,7,9,11];
var arrRemoved = arr.splice(0,2);
console.log(arr); //[5, 7, 9, 11]
console.log(arrRemoved); //[1, 3]
var arrRemoved2 = arr.splice(2,0,4,6);
console.log(arr); // [5, 7, 4, 6, 9, 11]
console.log(arrRemoved2); // []
var arrRemoved3 = arr.splice(1,1,2,4);
console.log(arr); // [5, 2, 4, 4, 6, 9, 11]
console.log(arrRemoved3); //[7]
一、join
// join()里面传的是分隔符
var arr = ['html','css','js']
console.log(arr.join('|'));
二、sort
sort():将数组里的项从小到大排序
var arr1 = ["a", "d", "c", "b"];
console.log(arr1.sort()); // ["a", "b", "c", "d"]
// 升序
var arr = [12, 3, 5, 11, 1]
var newArr = (arr.sort(function(a, b) {
return a - b
}))
console.log(newArr);
// 降序
var c = [12, 14, 45, 2]
var test = c.sort(function(a, b) {
return b - a
})
console.log(test);
// 实例
var arr = [
{
name: 'KFC',
price: 100,
distance: 100
},
{
name: '必胜客',
price: 200,
distance: 500
},
{
name: '华莱士',
price: 50,
distance: 1000
},
]
arr.sort(function(a,b){
return a.price - b.price
})
console.log(arr);
arr.sort(function(a,b){
return b.distance - a.distance
})
console.log(arr);
三、reduce
var arr = [1, 2, 3]
var sum = arr.reduce((a,b) => a+b)
console.log(sum);
四、reverse
// 翻转数组,原数组改变
var arr = ['html', 'css', 'js']
arr.reverse()
console.log(arr);
五、for in
var arr = ['html', 'css', 'js']
for(var key in arr){
console.log(key); // key获取的是数组的下标
console.log(arr[key]);
}
var test = {
name: 'KFC',
price: 100,
distance: 100
}
for(var key in test){
console.log(key); // key获取的是对象的属性
console.log(test[key]);
}
六、for of
var arr = [3, 4, 5]
for(var value of arr){
console.log(value); // value获取的是值
console.log(arr.indexOf(value)); // 获取下标
}
七、foreach
forEach():对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。参数都是function类型,默认有传参,参数分别为:遍历的数组内容;第对应的数组索引,数组本身。
var arr = [1, 2, 3, 4, 5];
arr.forEach(function(x, index, a){
console.log(x + '|' + index + '|' + (a === arr));
});
// 输出为:
// 1|0|true
// 2|1|true
// 3|2|true
// 4|3|true
// 5|4|true
var test = [2, 3, 4]
var test1 = []
test.forEach(function(item) {
test1.push(item * 2)
})
console.log(test1);
var names = [
{name: 'lisi'},
{name: 'wangwu'}
]
names.forEach(function(item){
item.like = true
})
console.log(names);
八、map
map():指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
var arr = [2, 3, 4]
var res = arr.map(item => {
return item * 2;
})
console.log(res);
var arr = [
{name: 'html', value: '12px'},
{name: 'css', value: '13px'},
{name: 'js', value: '14px'}
]
arr.map(item => {
item.value = parseInt(item.value) * 2 + 'px'
})
console.log(arr);
九、some
var arr = [3, 4, 5, 6];
// 只要数组中一项满足某个条件,那么结果就是true
var res = arr.some(item => {
return item > 1;
})
console.log(res);
十、every
var arr = [2, 3, 4]
// 数组中的每一项都必须满足某个条件,返回Boolean
var res = arr.every(item => {
return item > 2;
})
console.log(res);
十一、filter
filter():“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.filter(function(x, index) {
return index % 3 === 0 || x >= 8;
});
console.log(arr2); //[1, 4, 7, 8, 9, 10]
var arr = [3, 4, 5, 6]
// 只要是达到某个条件,就会返回一个新的数组
var res = arr.filter(item => {
return item > 4
})
console.log(res);
十二、find
var arr = [2, 3, 4]
// 返回数组中符合条件的一个值,找到则返回数组中符合的值,没找到则返回undefined
var res = arr.find(item => {
return item == 3;
})
十三、findIndex
var arr = [4, 3, 4]
// 返回数组中符合条件的元素的下标,找到则返回数组元素的下标,没找到则返回-1
var index = arr.findIndex(item => {
return item == 4;
})
console.log(index);