js的数组和对象的多种"复制"和"清空", 以及区分JS数组和对象的方法

栏目: JavaScript · 发布时间: 6年前

内容简介:1.数组清空的方法2.数组复制方法1.判断对象是否为空

一.数组清空与复制方法

1.数组清空的方法

var a = [1,2,3];    
a.length = 0;           //方法1 
a.splice(0, a.length);  //方法2

2.数组复制方法

var a = [1,2,3];
a.slice(0)

二.对象清空与复制方法

1.判断对象是否为空

Object.key.length==0  //为空  ES6

2.对象复制

(1)万能办法

function clone(obj){
    let temp = null;
    if(obj instanceof Array){
        temp = obj.concat();
    }else if(obj instanceof Function){
        //函数是共享的是无所谓的,js也没有什么办法可以在定义后再修改函数内容
        temp = obj;
    }else{
        temp = new Object();
        for(let item in obj){
            let val = obj[item];
            temp[item] = typeof val == 'object'?clone(val):val; //这里也没有判断是否为函数,因为对于函数,我们将它和一般值一样处理
        }
    }
    return temp;
}

(2)JSON对象序列化方法, 弊端: 不能复制函数

JSON.parse(JSON.stringify(obj))

三.判断是否为数组和对象的方法

1.toString方法

Object.prototype.toString.call(array) === '[object Array]'  //true
Object.prototype.toString.call(obj) === '[Object Object]'  //true

2.constructor方法

obj.constructor === Array//true
obj.constructor === Object //true

3.instanceof方法, 弊端: 区分不开对象或者数组

obj instaceof Object  //true
array instaceof Object// true

4.isArray方法

Array.isArray([1,2,3])  //true

以上是我认为无懈可击的方法, 其他还有很多, 需要请留言

想了解原生js的"数组"和"对象"的方法, 请点击 JavaScript教程-阮一峰


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Ajax for Web Application Developers

Ajax for Web Application Developers

Kris Hadlock / Sams / 2006-10-30 / GBP 32.99

Book Description Reusable components and patterns for Ajax-driven applications Ajax is one of the latest and greatest ways to improve users’ online experience and create new and innovative web f......一起来看看 《Ajax for Web Application Developers》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具