1. 数组的创建
js中一般有两种方式创建数组;
//1. 数组的创建
var arr = [1,2,1,3,6,8,7];
//第一种直接用方括号括起来,里面元素用逗号隔开。
var arr_sec = new Array(1,2,3);
//第二种则是直接用Array 对象创建。
2.方法
(1)push 方法
arr.push(num);
//arr.push(num) 在数组尾部添加一组新的数据
此方法会改变原数组,而且它返回的值是被改变后数组的长度。
(2)pop 方法
arr.pop();
//arr.pop() 在数组尾部删除一组数据
此方法会改变原数组,而且它返回的值是被删除的值。
(3)unshift 方法
arr.unshift(num);
//arr.unshift(num) 在数组头部添加一组新数据
此方法会改变原数组,而且它返回的值是被改变后数组的长度。
(4)shift 方法
arr.shift();
//arr.shift() 在数组头部删除一组数据
此方法会改变原数组,而且它返回的值是被删除的值。
(5)reverse 方法
//翻转数组reverse()
var arrRe = arr.reverse();
此方法会改变原数组,而且它返回的是一个新数组。
(6)sort 方法
//数组排序sort()
arrSo = arr.sort(function(a,b) {
return a - b; //升序
// return b - a; //降序
// return Math.random(a) - 0.5; //随机数组
});
此方法会改变原数组,而且它返回的是一个新数组,这里的随机还不是足够优化的随机,假如要随机优化建议使用洗牌算法。
(7)concat 方法
// 连接两个数组 concat() 此方法并不会改变原数组
arrCa = arr.concat(arr_sec);
此方法不会改变原数组,而且它返回的是一个新数组。
(8)join 方法
//转换字符串 join() 可以自定义分隔符 此方法并不会改变原数组
arrJo = arr.join('|');
此方法不会改变原数组,而且它返回的是一个新数组。
(9)slice 方法
//截取数组并返回slice() 内跟两个参数,从几位开始截取,截取至几位
arrSl = arr.slice(2,4);
此方法不会改变原数组,而且它返回的被截取的参数。
(10)splice 方法
// splice() 插入、删除、修改数组
// 第一参数表示起始位,第二参数表示要删除的项(数目),第三位表示在起始位(这里是10)插入元素
var itemArr = arr.splice(10,3,'我是插入的第一个元素','我是插入的第二个元素');
此方法会变原数组,而且它返回的被截取的参数。
(11)forEach 方法
var sum = 0;
//forEach()迭代(遍历)
arr.forEach(function(value,index,array) {
// console.log('每个数组元素' + value);
// console.log('每个数组元素的索引号' + index);
// console.log('数组本身' + array);
return sum += value;
});
console.log(sum);
console.log(arr);
//value:数组里面每个元素; index:每个元素的索引号; array:数组的本身
(12)filter 方法
// filter 筛选数组
var arr = [5,11,6,7,9,12,19,17];
var newArray = arr.filter(function(value, index, array) {
//1. 如果要筛选某组数据,只要return与之相对应的条件即可
// return value >= 10;
// return value %2 === 0;
// return index %2 === 0;
return index %2 === 1;
});
console.log(newArray);
//value:数组里面每个元素; index:每个元素的索引号; array:数组的本身
(13)some 方法
// some 查找数组中是否有满足条件的元素
var arr = [1,2,3];
var arrS = arr.some(function(value,index,array) {
return value > 2;
});
console.log(typeof arrS);
//value:数组里面每个元素; index:每个元素的索引号; array:数组的本身
此方法方法返回的是布尔值。
(14)every 方法
var arr = [1, 3, 5, 8]
// every() 方法主要用于查询数组中是否有不满足条件的元素,同some不同只要有一个不满足则返回
//false
arr.every((value, index, array) => {
return value === 9;
});
//value:数组里面每个元素; index:每个元素的索引号; array:数组的本身
此方法方法返回的是布尔值。
(15)reduce 方法
var arr = [1, 2, 31, 22, 1, 2, 2, 112];
// reduce() 常用于前一个值与后一个值的累加,它有四个参数,分别为累加值,当前值,下标,和数
//组本身
var sum = arr.reduce(function (prev, now, index, self) {
return prev + now;
}, 0);
此方法不会改变原数组,返回的是一个新值。
(16)map 方法
var arr = [1, 16, 4, 25, 9];
// map() 常用于遍历数组内数据计算,内容拼接等,它返回的是一个新数组,
var getSqrt = arr.map(function (value, index, self) {
return Math.sqrt(value);
});
//它有三个参数,分别为数组里每个元素,数组下标,和数组本身
此方法不会改变原数组,返回的是一个新数组。
(17)Array.from 方法
//Array.from() 将伪数组转换成数组
let arr = {
'0':1,
'1':2,
'2':3,
length: 3
};
var ary = Array.from(arr,item => item * 2);
此方法并不会改变原伪数组,返回的是一个新数组。
(18)find 方法
//find() 方法 用于找出第一个符合条件的数组成员,没有找到则返回undefined
let ary = [{
id: 1,
name: 'jj',
},{
id: 2,
name: 'dd',
}];
let target = ary.find((item,index) => item.id == 2);
此方法不会改变原数组,返回的是一个新值。
(19)findIndex 方法
//findIndex()方法,用于找出第一个符合条件的数组成员的位置,如果没有找到则返回-1
let arr = [1, 2, 3, 4, 5];
let arr1 = arr.findIndex(value => value > 3);
console.log(arr1);
此方法不会改变原数组,返回的是一个Number。
(20)includes 方法
//Includes()方法,表示某个数组是否包含给定的值,返回布尔值
let arr = [1, 2, 3, 4, 5];
console.log(arr.includes(3)); //ture
console.log(arr.includes(6)); //flase
此方法不会改变原数组,返回的是一个布尔值。
3.总结
学js有一段时间了,数组是js的重点,目前也就掌握了这一些方法,希望能帮助到有需求的人,假如哪里写的不对的地方,欢迎大家指出来~~