Vuejs对象操作:对象转数组,取对象的属性key 和value 值,以及将多个对象合并为一个对象

1、取对象的key

Object.keys(obj) 返回一个表示给定对象的所有可枚举属性的字符串数组

var obj = {
    
     foo: 'bar', baz: 42 };
console.log(Object.keys(obj)); // ['foo', 'baz']

2、取对象的value值

方法一:**Object.values(obj)**返回一个给定对象自身的所有可枚举属性值的数组,值的顺序与使用 for…in 循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。

var obj = {
    
     foo: 'bar', baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]
console.log(Object.values('foo')); // ['f', 'o', 'o']

方法二:

let obj = {
    
    
        a:'aa',
        b:'bb',
        c:'cc',
        d:'dd'
    };
for(let i in obj){
    
    
 console.log(i); //a b c d
 console.log(obj[i]); // aa bb cc dd
}
//如果想把值整合在一起,可以var一个数组,然后将值push进数组里

方法三:

var obj = {
    
     foo: 'bar', baz: 42 };
Object.keys(obj).map((key)=>{
    
        console.log(obj[key])});//依次返回 bar 42

3、将key和value都取出来并转成数组

Object.entries() 返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组

var obj = {
    
     foo: 'bar', baz: 42 };
console.log(Object.entries(obj)); // [['foo', 'baz'],['bar',42]]

4、将多个对象合并为一个并去重

Object.assign方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

const target = {
    
     a: 1, b: 2 };
const source = {
    
     b: 4, c: 5 };
const returnedTarget = Object.assign(target, source);//{a: 1, b: 4, c: 5}

猜你喜欢

转载自blog.csdn.net/GongWei_/article/details/109670992