js如何将对象转为数组(Object.values、Object.entries、Object.fromEntries区别举例)

问题描述:

有时候后端传给前端的数据格式不是我们想要的,需要自己处理一下数据。

后端传的:{aaa: "one" ,bbb: "two" ,ccc: "three" },需要将这个对象改成一组键和值成为一个数组,这个时候就可以用Object.entries(),例如:

let obj1={aaa: "one" ,bbb: "two" ,ccc: "three" }
let obj2=Object.entries(obj1);//obj2:[["aaa", "one"],["bbb", "two"],["ccc", "three"]]

借此总结Object.values、Object.entries、Object.fromEntries:

Object.entries:

定义:以数组形式返回给定对象可枚举属性的 [键:值]
如:[ [键1,值1],[键2,值2],[键3,值3],[键4,值4] ]

举例:

//对象=》数组
let obj1 = {one:'a',two:'b',three:'c'};
Object.entries(obj1);   // [["one", "a"],["two", "b"],["three", "c"]]

//对象=》数组,键为数字的对象, 会按照数字键的顺序输出
let obj2 = {1:'one',3:'three',2:'two'};
Object.entries(obj2);   //[["1", "one"],["2", "two"],["3", "three"]]

//数组=》数组,js会把数组['1','2','3']当作含数字键的对象{0:'1',1:'2','2','3'}
let obj3 = ['1','2','3'];
Object.entries(obj3);   // [["0", "1"],["1", "2"],["2", "3"]]

//字符串=》数组
Object.entries('abcd');   // [["0", "a"],["1", "b"],["2", "c"],["3", "d"]]
Object.fromEntries()

就是Object.entries()的反向操作
定义:将 [ [键1,值1],[键2,值2],[键3,值3],[键4,值4] ]
转为 { 键1:值1,键2:值2,键3:值3,键4:值4 }

举例:

//对象=》数组
 Object.fromEntries([["one", "a"],["two", "b"],["three", "c"]]);  
 //{one: "a", two: "b", three: "c"}

//对象=》数组,键为数字的对象, 会按照数字键的顺序输出
 Object.fromEntries([["1", "one"],["2", "two"],["3", "three"]]);   
//{1: "one", 2: "two", 3: "three"}

//数组=》数组,js会把数组['1','2','3']当作含数字键的对象{0:'1',1:'2',2:'3'}
Object.fromEntries([["0", "1"],["1", "2"],["2", "3"]]);   
//{0: "1", 1: "2", 2: "3"}

//字符串=》数组,js会把字符串abc当作含数字键的对象{0:'a',1:'b',2:'c'}
 Object.fromEntries([["0", "a"], ["1", "b"], ["2", "c"], ["3", "d"]]);  
 //{0: "a", 1: "b", 2: "c", 3: "d"}
Object.values()

定义:以数组形式返回给定对象可枚举属性的,如:[ 值1,值2,值3,值4 ] 

举例:

//对象=》数组
let obj1 = {one:'a',two:'b',three:'c'};
Object.values(obj1);   // ["a", "b", "c"]

//对象=》数组,键为数字的对象 会按照数字键的顺序输出
let obj2 = {1:'one',3:'three',2:'two'};
Object.values(obj2);   // ["one", "two", "three"]

//数组=》数组
let obj3 = ['1','2','3'];
Object.values(obj3);   // ["1", "2", "3"]

//字符串=》数组
Object.values('abcd');   // ["a", "b", "c", "d"]

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值