目录
数组序列化 JSON.stringify(arr) toString() join()
数组反序列化 JSON.parse(JSON.stringify(arr))
判断某个变量是否是一个数组对象 Array.isArray()
Array.prototype.shift() 将数组第一个元素删除,并返回删除元素的值
Array.prototype.unshift() 向数组开头添加一个或更多元素,并返回数组新的长度
Array.prototype.reverse() reverse() 方法用于颠倒数组中元素的顺序。
Array.prototype.sort() sort() 方法用于对数组的元素进行排序。
序列化的定义
序列化:把对象转化为可传输的字节序列过程称为序列化。
反序列化:把字节序列还原为对象的过程称为反序列化。
同对象序列化一样,数组也有序列化与反序列化。
数组序列化
数组序列化 JSON.stringify(arr) toString() join()
数组反序列化 JSON.parse(JSON.stringify(arr))
// 数组序列化
var arr = [1,2,3,4,5,{name:'sunsan'}];
// 1.JSON.stringify()方法
var res = JSON.stringify(arr);
console.log(res,typeof(res));
// 2.将数组变为json字符串
// 2.1toString()方法
var strArr1 = arr.toString();
console.log(strArr1,typeof(strArr1));
var strArr2 = String(arr);
console.log(strArr2,typeof(strArr2));
// 2.2使用join()
var strArr3 = arr.join();
console.log(strArr3,typeof(strArr3));
// 数组反序列化
console.log(JSON.parse(res),typeof(JSON.parse(res)));
输出:
构造函数的静态方法
判断某个变量是否是一个数组对象 Array.isArray()
var arr = [1,2,3,4,5];
console.log(Array.isArray(arr));
将类数组对象转为数组 Array.from()
var str = 'hello world';
var res = Array.from(str);
console.log(res);
创建数组 Array.of()
括号里的参数是数组元素
var arr1 = Array.of(10,'20','hello',30);
console.log(arr1);
var arr2 = Array.of({name:'zhangsan',age:18},{name:'lisi',age:20});
console.log(arr2);
栈和队列方法
Array.prototype.shift() 将数组第一个元素删除,并返回删除元素的值
注:此方法会改变数组长度!
语法:array.shift()
返回值:
// shift 参数无 返回值 删除的元素 改变数组
var arr = [1,2,3,4,5];
var res1 = arr.shift();
console.log(res1);
console.log(arr);
Array.prototype.unshift() 向数组开头添加一个或更多元素,并返回数组新的长度
注:此方法会改变数组的数目!
语法:array.unshift(item1,item2, ..., itemX)
参数值:
返回值: 数组新的长度
// unshift 参数 添加的元素 返回值 新的数组长度 改变数组
var res2 = arr.unshift(0,'1');
console.log(res2);
console.log(arr);
数组排序方法
Array.prototype.reverse() reverse() 方法用于颠倒数组中元素的顺序。
语法 :array.reverse()
返回值:
// reverse 参数无 返回值 反转后的数组 改变原数组
var arr = Array.of(1,2,3,4,5);
var res = arr.reverse();
console.log(res,arr);
Array.prototype.sort() sort() 方法用于对数组的元素进行排序。
语法: array.sort(sortfunction)
参数值 :
sort()方法分为无参数和有参数两种
无参数 将会按照ascll码来排序
// 参数无 返回值 ascll码排序后的数组 改变原数组
var arr = Array.of(1,2,11,21,3,6,54);
var res = arr.sort();
console.log(res,arr);
有参数 必须通过一个函数作为参数来调用
关于升序和降序的条件
无论a>b还是b>a,return a-b 总能得到升序的结果,而 return b-a 总能得到降序的结果。
// 参数(a,b) 返回值 排序后的数组 改变原数组
var arr = Array.of(1,2,11,21,3,6,54);
var res = arr.sort(function(a,b){
// if(a>b){
// // 升序
// return 1;
// }else{
// // 降序
// return -1;
// }
// return a-b;
return b-a;
});
console.log(res,arr);