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

{ 12: a, 32: b, 43: c}

需要转换成[{12:a}, {32:b}, {43: c}]

eslint好像禁止使用for in;
谢谢各位了


胡子哥哥
浏览 2348回答 3
3回答

慕斯709654

// 最好不用`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);

慕莱坞森

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

泛舟湖上清波郎朗

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}]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript