数组API之数组序列化、构造函数的静态方法、栈和队列的方法和数组排序方法

目录

序列化的定义

数组序列化

数组序列化        JSON.stringify(arr)        toString()        join()        

数组反序列化        JSON.parse(JSON.stringify(arr))

构造函数的静态方法

判断某个变量是否是一个数组对象        Array.isArray()

将类数组对象转为数组         Array.from()

 创建数组        Array.of()

 栈和队列方法

Array.prototype.shift()       将数组第一个元素删除,并返回删除元素的值

 Array.prototype.unshift()       向数组开头添加一个或更多元素,并返回数组新的长度

数组排序方法 

Array.prototype.reverse()         reverse() 方法用于颠倒数组中元素的顺序。

 Array.prototype.sort()         sort() 方法用于对数组的元素进行排序。

无参数        将会按照ascll码来排序

 有参数        必须通过一个函数作为参数来调用

关于升序和降序的条件


序列化的定义

序列化:把对象转化为可传输的字节序列过程称为序列化。

反序列化:把字节序列还原为对象的过程称为反序列化。

同对象序列化一样,数组也有序列化与反序列化。

数组序列化

数组序列化        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);

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学前端的狗头苏丹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值