JS中将对象转化为数组

  • 如何把一个对象转化为数组,实例:
obj:{
  name: 'aaa',
  height: 190,
  sex: 'man',
}
转化为:
objNew:[
  { name: 'aaa' },
  { height: 190 },
  { sex: 'man' },
]

对象的两种取值方式
JS中对象有两种取值方式,通过在.后面直接加属性名取值,这也是我们最常使用的一种方式,例如:

let obj = {name: 'aaa'};
console.log(obj.name);  //aaa   

这是最普通的一种方式,还有一种方式我们用的不太多,就是使用[]包住属性名取值,类似于数组那样,例如:

let obj = {name: 'aaa'};
console.log(obj['name']);  //aaa  注意此处如果是变量的话不要加引号

如果对于一个已知的对象来说,是没什么区别的,如果我们需要的对象的key是变量,就需要第二种取值的方式。

我们文章开始例子中的对象是:

obj:{
  name: 'aaa',
  height: 190,
  sex: 'man',
}

如果目标数组只是为了得到对象的key的集合或者value的集合还是相对容易的

for(let i  in this.obj){
  this.objNew.push(this.obj[i]) //值 ['aaa' 190 'man']
  this.objNew.push(i) //属性  ['name' 'height' 'sex']
}
//也可写下面这一句得到key或value的集合数组
this.objNew = Object.values(this.obj) 
this.objNew = Object.keys(this.obj) 

如果像我文中开始的需求的话就只需要改变一下push进去的内容为一个对象即可

var arr = []
for (let i in this.obj) {
    let o = {};
    o[i] = obj[i]; //即添加了key值也赋了value值 o[i] 相当于o.name 此时i为变量
    arr.push(o)
}
console.log(arr); [{name: 'aaa'},{'height: 190'},{sex:'man'}]

还可以这样写:
for(let i in this.obj){
    this.objNew.push({[i]:this.obj[i]})
}
//注意for in 也可以是数组,key的值为数组的索引值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于键值编码 键值编码(KVC)是一种由NSKeyValueCoding非正式协议提供的机制,对象采用该机制来提供...
    渐z阅读 993评论 0 0
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,220评论 6 13
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,159评论 1 32
  • 1.要有服务意识。文章为读者服务。 2.要共情不要偷情。 3.累积素材。
    大人读童书阅读 135评论 0 0
  • 很多时候 我都是一厢情愿 昨天,为了追逐蒲公英 我和我的爱人吵架 从早上吵到晚上 很长一段时间 放任我的感情 很多...
    菀茹阅读 262评论 1 3