js随笔(一)
一、查看键值对中是否有指定的key:
* ary.hasOwnProperty(key);或 obj.hasOwnProperty(key);
二、数组的深度拷贝:
var ary2 = JSON.parse(JSON.stringify(ary1));
// 利用JSON对象
中的parse
和stringify
,JOSN对象中的stringify可以把一个js对象序列化为一个JSON字符串,parse可以把JSON字符串反序列化为一个js对象,通过这两个方法,也可以实现对象的深复制。
// 此方法适用于Oject的深度拷贝,因为Array属于Oject类型,所以也适用于此处;
// 需要注意的是:作为Oject的深度拷贝时,要复制的function会直接消失,所以这个方法只能用在单纯只有数据的对象。
或
var a = [...b];
三、splice函数:
* splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。
使用语法:
array.splice(index,howmany,element 1,element 2.......,element n)
参数说明:
* index:删除数组特定位的数据,其中index是数组的位数,若删除第2位的数据,index就应该是0。
* howmany: 从删除位开始,往后要删除多少个元素,howmany=0 则不会删除。
* element 1....element n: 在index位开始然后添加这些数据,并且将index位之后的数据向后挤。howmany=0不删除直接插入,howmany != 0删除后添加。
###################################
// 删除
var a1 = [1,2,3,4,5,6] a1.splice(1,1); [2] a1 (5) [1, 3, 4, 5, 6] ####################################
// howmany=0 不删除 a1.splice(1,0); [] a1 (5) [1, 3, 4, 5, 6] ####################################
// 指定位删除并插入 a1 (5) [1, 3, 4, 5, 6] a1.splice(1,1,7,8,9); [3] a1 (7) [1, 7, 8, 9, 4, 5, 6] ####################################
// howmany=0 不删除直接插入
a1
(7) [1, 7, 8, 9, 4, 5, 6] a1.splice(1,0,'a','b','c'); [] a1 (10) [1, "a", "b", "c", 7, 8, 9, 4, 5, 6]