对象的常用操作方法
1.assign()(会改变第一个参数的对象):对象的合并
let obj1 = { name: “zs”, age: 18 };
let obj2 = { like: “打代码” };
let objs = Object.assign(
obj1, obj2)
;
objs为:{name: ‘zs’, age: 18, like: ‘打代码’}
obj1为:{name: ‘zs’, age: 18, like: ‘打代码’}
obj2为:{ like: “打代码” }
2.Object.keys():将对象的key转换成数组
var obj = { name: “a”, age: 10 };
console.log(Object.keys(
obj)
);
输出:[“name”,“age”]
3.hasOwnProperty():判断对象身上是否包含某一个属性:
let obj = { name: “lily”, age: 18 };
obj.hasOwnProperty(
“name”)
; //存在则返回true
let b = "toString"
in
obj; //true,判断obj对象里是否含有toString属性
注意:
hasOwnProperty()方法仅判断对象本身的属性
in 会把从父类prototype继承的属性和方法也检查一遍。
4.Set():无重复有序列表
let set = new Set();
1.增加:
set.add
(2);
set为:Set(1) {2}
2.删除:
set.delete
(2); //成功则返回true
3.检查:
set.has
(2); //存在则返回true
4.长度:
console.log(set.size
); //1
5.转换:
let set2 = new Set([1, 2, 3, 4]);
let arr =[...set2]
;
arr为:[1, 2, 3, 4]
数组去重:
const _arr1 = […new Set(arr1)];
5.Map():给对象进行增删改查
let map = new Map();
1.增加:
map.set
(“name”, “张三”);
map为:Map(1) {‘name’ => ‘张三’}
2.输出:
console.log(map.get
(“name”)); //张三
3.删除:
map.delete
(“name”); //成功则返回true
4.检查:
map.has
(“name”); //存在则返回true
5.清空:
map.clear
(); //返回值为undefined