1、判断一个对象是否为 array
let obj = {};
let arr = [];
Array.isArray(obj); //false
Array.isArray(arr); //true
2、将一下字符串转换成数组
let str = '["huangny233333","android_wxpaytest_56","android_wxpaytest_56","android_wxpaytest_55","android_wxpaytest_38"]'
let arr = eval(str); //变成相应数组
eval( ) 函数可以计算某个字符串,并执行其中的js代码
3、数组的浅拷贝和深拷贝。
var Chinese = { nation : '中国' };
var Doctor = { career : '医生' };
function extendCopy( p ){
var c = {};
for(var i in p){
c[i] = p[i];
c.uber = p;
}
return c;
}
使用如下:
var doctor = extendCopy(Chinese);
doctor.career = '医生';
alert( doctor.native ); //中国
这种方式,实际上,子对象获得的只是一个内存地址,而不是真正的拷贝,因此父对象存在被篡改的可能。
深拷贝:
所谓深拷贝,就是真正意义上实现数组和对象的拷贝,它的实现并不难,只要递归调用浅拷贝就行了。
function deepCopy(p, c){
var c = c || {};
for( var i in p){
if( typeof p[i] === 'object'){
c[i] = (p[i].constructor === Array) ? [] : {} ;
deepCopy( p[i], c[i] );
}else{
c[i] = p[i];
}
}
return c;
}