Object.keys(obj)
Object.keys(obj)
:返回对象自身所有可枚举属性的键名数组
- 处理对象,返回可枚举的键数组
const object1 = {
a: 'somestring',
b: 42,
c: false
};
console.log(Object.keys(object1));
// 结果: Array ["a", "b", "c"]
- 处理数组和字符串,返回索引值数组
let arr = [1,2,3]
Object.keys(arr) // ["0", "1", "2"]
let str = "123字符串"
Object.keys(str) // ["0", "1", "2", "3", "4", "5"]
常用技巧
let person = {name:"张三",age:18,address:"湖南"}
Object.keys(person).map((key)=>{
person[key] // 获取到属性对应的值,做一些处理
})
Object.values(obj)
Object.values(obj)
:返回对象自身所有可枚举属性的值数组。(与Object.keys相反)
- 处理对象,返回可枚举的属性数组
const object1 = {
a: 'somestring',
b: 42,
c: false
};
console.log(Object.keys(object1));
// 结果: Array ["somestring", 42, false]
- 处理数组和字符串,返回值数组(返回本身)
let arr = [1,2,3]
Object.values(arr)
//结果:[1, 2, 3]
let str = "123字符串"
Object.values(str) // ['1', '2', '3', '字', '符', '串']
Object.assign()
Object.assign(target, source1, source2, ...)
:将源对象的属性复制到目标对象中,并返回目标对象。
参数:
target--->目标对象
source--->源对象
返回值:target,即目标对象
可以用来复制对象的可枚举属性到目标对象,利用这个特性可以实现对象属性的合并。
- 基本用法
var target = {a : 1}; //目标对象
var source1 = {b : 2}; //源对象1
var source2 = {c : 3}; //源对象2
var source3 = {c : 4}; //源对象3,和source2中的对象有同名属性c
Object.assign(target,source1,source2,source3);
//结果如下:
//{a:1,b:2,c:4}
assign的设计目的是用于合并接口的,所以它接收的第一个参数(目标)应该是对象,如果不是对象的话,它会在内部转换成对象,所以如果碰到了null或者undefined这种不能转换成对象的值的话,assign就会报错。但是如果源对象的参数位置,接收到了无法转换为对象的参数的话,会忽略这个源对象参数。
标签:常用,对象,Object,js,keys,let,数组,属性 From: https://www.cnblogs.com/icey-Tang/p/17164457.html