为了账号安全,请及时绑定邮箱和手机立即绑定

键值对对象如何转换成数组对象

键值对对象如何转换成数组对象

胡子哥哥 2019-03-06 09:09:15
{ 12: a, 32: b, 43: c}需要转换成[{12:a}, {32:b}, {43: c}]eslint好像禁止使用for in;谢谢各位了
查看完整描述

3 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

// 最好不用`for-in`,`for-in`会把原型链的所有可枚举的属性枚举出来。

// 可以用ES5的`Object.keys()`,只枚举当前对象的可枚举是属性。

var obj = { 12: 'a', 32: 'b', 43: 'c'};

var result = Object.keys(obj).map((el) => {

    return {[el]: obj[el]};

});

console.log(result);

// 也可以使用`ES8`的`Object.entries()`

var result2 = Object.entries(obj).map(el => {

    console.log(el[0], el[1]);

    return {[el[0]]: el[1]};

});

console.log(result2);

查看完整回答
反对 回复 2019-03-19
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

eslint不限制for-in,只要在for-in里面加if判断就可以
你还可以用Object.keys

查看完整回答
反对 回复 2019-03-19
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

var obj={ 12: "a", 32: "b", 43: "c"};

var arr=[];

for(var i in obj){

    if(i==undefined){

        break

    } 

    var tt={};

    tt[i]=obj[i];

    arr.push(tt)

};

console.log(arr);//[{12:"a"},{32:"b"},{43:c}]


查看完整回答
反对 回复 2019-03-19
  • 3 回答
  • 0 关注
  • 2347 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信