汇总:
方法 | 作用 | 返回值 | 更改原数组 |
---|---|---|---|
push() | 数组后面加元素 | 添加数据后数组长度 | 改变 |
unshift() | 数组前面加元素 | 添加数据后数组长度 | 改变 |
pop() | 删除数组后面最后一个元素 | 被删除的元素 | 改变 |
shift | 删除数组第一个元素 | 被删除的数据 | 改变 |
splice() | 删除元素splice(index,num) | 被删除的元素组成的数组 | 改变 |
splice() | 删除元素splice(index、num、value) | 被删除的元素组成的数组 | 改变 |
reverse() | 反转数组 | 反转之后的数组 | 改变 |
slice() | 截取数据(不包含结束索引的数据) | 截取的数据 | 不改变 |
sort() | 数据排序 | 排序好的数据 | 改变 |
concat() | 合并数组 | 合并好的数组 | 不改变 |
join() | 把数组转化为字符串 | 转换好的字符串 | 不改变 |
indexOf() | 判断数组中是否存在某个元素 | 如果数据存在 返回这个数据的索引,如果不存在就返回-1 | 不改变 |
map() | 按照原始数组元素顺序依次处理元素 | 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。 | 不改变 |
forEach() | 数组遍历 | undefined | 不改变 |
filter() | 过滤 | 新数组中的元素是通过检查指定数组中符合条件的所有元素 | 不改变 |
some() | 检测数组中的元素是否满足指定条件(函数提供) | 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。 如果没有满足条件的元素,则返回false。 | 不改变 |
every() | 用于检测数组所有元素是否都符合指定条件 | 一个不满足返回false;全都满足返回true | 不改变 |
reduce() | 累加器 | 循环的最后一次结果 | 不改变 |
push()
/*【1】push() 向数组中追加 数据添加到数组的末尾
改变原数组
返回值:添加数据之后 的数组长度 */
var arr = [0,2,3,4];
console.log(arr.push(99));
console.log(arr);
unshift()
改变原数组
返回值:添加数据之后 的数组长度
var arr = [0,2,3,4];
console.log(arr.unshift(99));
console.log(arr);
pop()
【3】pop() 删除数组中最后一个元素
改变原始数组
返回值:被删除的数据
var arr = [0,2,3,4];
console.log(arr.pop());
console.log(arr);
shift():
/* 【4】shift() 删除数组中第一个元素
改变原始数组
返回值:被删除的数据 */
var arr = [0,2,3,4];
console.log(arr.shift());
console.log(arr);
splice()
/* 【5】splice(index,number) 从任意位置删除
数据 或者 截取数据
index:从什么索引位置开始删除数据
number:删除的个数
改变原始数组
返回值:一个新数组 ,存储的数据为删除的元素*/
var arr = [0,2,3,4];
console.log(arr.splice(1,2));
console.log(arr);
/* 【6】splice(index,number,value) 替换元
素,用value来替换删除的元素
index:从什么索引位置开始删除数据
number:删除的个数
value:用来替换的值
改变原始数组
返回值:一个新数组 ,存储的数据为删除的元素 */
var arr = [0,2,3,4];
console.log(arr.splice(1,0,99));//number为0是新增数据
console.log(arr);
slice()
/* 【7】slice(start,end) 截取 从开始位置的
索引到结束位置索引的数据(不包含结束索引的数据)
不改变原始数组
返回值:截取的数据 */
reverse()
/* 【8】reverse() 反转数组
改变原始数组
返回值:反转之后的数组 */
var arr=[0,1,2,3,4,7];
console.log(arr.reverse());
console.log(arr);
concat()
/* 【9】concat() 合并数组
不改变原始数组
返回值:合并好的数组
*/
var arr=[0,1,2,3,4,7];
var arr1 = ["xx","yy","ll"]
console.log(arr.concat(arr1));
console.log(arr);
var arr =[1,2,3,4];
console.log(arr.concat(3));
arr.concat(arr1,arr2)
sort()
【10】sort() 数据排序,按照字符的ASCII码来排序的
如果不想要按照 数据的ASCII码值排序,需要给sort添加一个回调函数
回调函数中有两个形参,在回调函数函数体中
写 return 参数1-参数2 升序排序
return 参数2-参数1 降序排序
改变原始数组
返回值:排序好的数据
function sortBy(props) {
return function (a, b) {
return b[props] - a[props];
}
}
join()
【11】join()把数组转化为 字符串
不改变原始数组
返回值:转换号的字符串
默认会用逗号来凭借字符串 join('') 表示用'' 来拼接字符串
var arr1 = ["xx","yy","ll"]
console.log(arr1.join(''));
console.log(arr1.join());//不写就是逗号拼接
indexOf()
判断数组中是否存在某个元素:
/* 【12】indexOf() 判断数组中是否存在某个元素
不改变原始数组
返回值:如果数据存在 返回这个数据的索引,如果不存在就返回-1
*/
var arr1 = ["xx","yy","ll"]
console.log(arr1.indexOf('ll'));
console.log(arr1.indexof('aa'));
map映射:
map()
返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
按照原始数组元素顺序依次处理元素。
语法: array.map(function(currentValue,index,arr), thisValue)
function(currentValue, index,arr):必须。函数,数组中的每个元素都会执行这个函数
函数参数:currentValue 必须。当前元素的值
index 可选。当前元素的索引值
arr 可选。当前元素属于的数组对象
thisValue可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。
forEach()
【2】forEach()数组遍历
调用数组的每个元素,并将元素传递给回调函数。
语法: array.forEach(function(currentValue, index, arr), thisValue)
forEach() 本身是不支持的 continue 与 break 语句的
返回值:undefined 不管有没有return 都是undefined
filter()
/* 【3】filter():创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
filter() 不会改变原始数组。
*/
var ages = [32, 33, 16, 40];
var res = ages.filter(function (item) {
return item >= 18;
});
console.log(res);
some()
/* some:
用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。
*/
every()
/*
every:
用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
(1)如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
(2)如果所有元素都满足条件,则返回 true。
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。
*/
reduce()
```javascript
/*
reduce() 累加器
语法:数组.reduce(function(pre,cur,index,arr){
},init)
pre:相当于一个变量,这个变量的值 如果init,pre的默认值为init,如果没有init参数,pre的值为数组中的第一个元素
cur:数组中每一项
index:每一项的索引
arr :原始数组
返回值:循环的最后一次结果
*/
var arr = [1, 2, 3, 4, 5, 6];
var res = arr.reduce(function (pre, cur) {
// 如果pre默认值为 1(没有第二个参数时),那么cur 值从2开始,循环只会循环5次
// 如果pre默认值为 0(第二个参数值设置为0),那么cur 值从1开始,循环只会循环6次
// 每一次循环结束 都会把return后面的值赋值 pre
return pre + cur
}, 0);
console.log(res);