深拷贝

深拷贝:把一个对象里面的东西一模一样地复制到另一个对象,并且这两个对象分别放在内存的不同地方

对象

//方法一
function cloneObject(obj){ 
	var o = obj.constructor === Array ? [] : {}; 
	for(var i in obj){ 
		if(obj.hasOwnProperty(i)){ 
			o[i] = typeof obj[i] === "object" ? cloneObject(obj[i]) : obj[i]; 
		} 
	} 
	return o; 
} 
//方法二
var obj = {
	a:'111'
}
var o = JSON.stringify(obj);
o = JSON.parse(o)
o.a='222';
console.log(o)  //Object {a: "222"}
console.log(obj)  //Object {a: "111"}

使用JSON.stringify()来过滤并序列化对象

// 1. 使用函数过滤
var user = {
    name: 'tom',
    age: 19,
    skills: 'js',
};
function replacer(key, value) {
  if (typeof value === "string") {
    return undefined;
  }
  return value;  // 返回值不是字符串的属性
}
// -------
{
  "age": 19
}


// 2. 使用数组过滤
var user = {
    name: 'tom',
    age: 19,
    skills: ['js', 'css', 'html'],
};
JSON.stringify(user, ['name', 'skills']) // "{"name":"tom","skills":["js","css","html"]}"
JSON.stringify(user, ['name', 'skills'], 2)
//------
{
  "name": "tom",
  "skills": [
    "js",
    "css",
    "html"
  ]
}

简单数组

var arr = [1,2,3];
var arr1 = arr.concat();
//或者
arr1 = arr.slice();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值