定义数组的方法
1:var arr = [1, 2, 3, 4];
2.var arr2 = new Array(4);
3.var arr3 = new Array(1, 2, 3, 4);
数组的长度 (可读可写) 字符串的长度(只能读)
var arr = [1, 2, 3, 4, 5];
修改原数组长度
arr.length = 3;
console.log(arr.length); // 3;
console.log(arr); // [1, 2, 3]
把数组长度再次改回原来长度
arr.length=5
console.log(arr,arr.length); // [1, 2, 3,undefiend,undefiend] 5
数组方法
Array.join()
// 参数: 拼接符 默认为逗号
将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串
var arr = [1, 2, 3, 4];
console.log(arr.join()); // '1,2,3,4'
console.log(arr.join('-')); // '1-2-3-4'
将字符串转换为数组
String.split()
数组的反转 Array.reverse()
将数组中的元素倒序,会改变原数组
数组的排序 Array.sort(function(a,,b){
return a-b(从小到大) || b-a(从大到小)}); 会改变原数组
Array.concat() 创建并返回一个新数组 不会改变原数组 字符串也有此方法 ,且不会改变原字符串
截取方法:
Array.slice(开始下标,结束下标); 不会改变原数组 。字符串中也有此方法且不会改变原字符串 。
Array.splice(开始下标,删除长度,新增元素); 会改变原数组
数组的栈方法与队列方法
Array.unshift() 从前面添加元素 返回值是数组的长度
Array.shift() 删除前面元素 返回值删除的元素组
Array.push() 从末尾添加元素 返回长度
Array.pop() 删除末尾元素 返回值删除的元素组
栈方法:(后进先出)
push() + pop()
队列方法 (先进先出)
在数组的末端添加项,从数组的前端删除项
push() + shift()
在数组的前端添加项,从列表的末端删除项
unshift() + pop()
数组的遍历方法
第一种遍历的方式
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
第二种遍历的方式 (会将数组定义的属性枚举出来)
for (var k in arr) {
console.log(arr[k]);
}
第三种遍历的方式
Array.forEach()
从头到尾遍历数组(只能通过try/catch终止循环)
eg:
var arr = [2, 4, 5, 6];
arr.forEach(function (ele(元素), index(下标), array(数组)) {
});
不同返回结果的遍历
1. Array.map(); ()
返回新数组,不改变原数组
要有return
返回被加工后的新元素
eg:var res = arr.map(function (ele(元素), index(下标), array(数组)) {
console.log(ele, index, arr);
return ele + 1(映射新数组执行的语句);
});
console.log(res); // [3, 5, 6, 7]
console.log(arr); // [2, 4, 5, 6]
2. Array.filter() 过滤
返回满足条件的元素组成的新数组
return 执行条件; // 返回元素满足您定义的条件的元素
eg:var res = arr.filter(function ((ele(元素), index(下标), array(数组))) {
return ele >= 4;
});
console.log(res); // [4, 5, 6]
console.log(arr); // [2, 4, 5, 6]
3. Array.every() 和 Array.some()
every():每一项都返回true,则返回true
eg:var arr=[1,2,3,4,5]
var res = arr.every(function ((ele(元素), index(下标), array(数组))) {
return ele >0; //所有元素都满足条件大于0
});
console.log(res); //true
some(): 某一项返回true,则返回true
eg:var arr=[1,2,3,4,5]
var res = arr.some(function ((ele(元素), index(下标), array(数组))) {
return ele >4; //只有有一个元素都满足条件大于0 则返回值为true
});
4. reduce()和reduceRight()
使用指定的函数将数组元素进行组合,生成单个值
指定函数中第一个参数为 前一个值
第二个参数为 前一个值
array.reduce(function (上一个值, 当前元素) {}, 起始值)
reduce():从数组的第一项开始,逐个遍历到最后一个
reduceRight() 则从数组的最后一项开始,向前遍历到第一项
eg:var arr = [2, 4, 5, 6];
var res = arr.reduce(function (pre(上一次循环的结果), cur(当前的元素), index(下标)) {
return cur + pre;
}, 10(传参及从这个只开始));
console.log(res);
拓展:该数组可以计算所有元素的和
5. Array.toString()
该方法将其每个元素转化为字符串
如有必要将调用元素的toString()方法
并且输出用逗号分隔的字符串列表
与不使用任何参数调用join()方法返回的字符串是一样的