JS数组方法总结
2019-11-18 本文已影响0人
深情的白杨
仰望星空,脚踏实地
// 前提
let arr = [
{id: 1,name: 'Swain', age: 20},
{id: 2,name: 'Grace', age: 21},
{id: 3,name: 'Jane', age: 22}
]
0、数组判定
在使用数组之前对它的具体类型进行判断是严谨的
0.1 instanceof方式
if (arr instanceof Array) {
// 对数组进行操作,instanceof的本意:什么的一个实例
}
这种方式的弊端是当前arr可能是由不同版本的Array创建出来的
0.2 isArray
if (Array.isArray(arr)) {
// 对数组进行操作
}
在不考虑兼容的情况下完美
0.3 constructor
arr.constructor.toString().indexof('Array') > -1
0.4 prototype
Object.prototype.toString.call(arr) === '[object Array]'
1、4个常用但极为熟悉的base方法,都修改了数组
1.1 push()
// 尾部插入一个
// 返回数组新长度
arr.push({id:4,name:'Mery',age:23});
1.2 pop()
// 尾部删除一个
// 返回被删内容
arr.pop();
1.3 unshift()
// 头部添加一个
// 返回数组新长度
arr.unshift({id:0,name:'ymx',age:18});
1.4 shift()
// 头部删除一个
// 返回被删除内容
arr.shift();
2、相对高级点的
2.1 concat(),上拉加载数据的时候,再次请求数据可以直接给原数组拼接上
// 拼接数组(可以是多个)
let concatArr = arr1.concat(arr2,arr3,arr4...);
// 不修改数组
// 返回拼接数组
let concatArr = arr.concat([{id:5,name:'husky',age:2}]);
2.2 slice()
// 取出部分数据
// 不修改数组
// 返回取到的数组
arr.slice(1,3); //从第1项开始取到第2项
arr.slice(3); //从第3项开始取到最后
2.3 reverse()
// 翻转数组,修改数组
arr.reverse();
2.4 join()
// 数组拼接字符串
let str = arr.join('*');
2.5 splice()
// 修改数组
// 从第一个位置开始,删除三个,再添加一个
arr.splice(1,3,{});
3、高级用法
3.1