我想像这样转换一个对象:

{"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}

输入一个键值对数组,如下所示:

[[1,5],[2,7],[3,0],[4,0]...].

如何将对象转换为JavaScript中的键值对数组?


当前回答

使用对象。以键值格式获取Object的每个元素,然后像这样映射它们:

var obj = {“1”:5,“2”:7,“3”:0,“4”:0,“5”:0,“6”:0,“7”:0,“8”:0,“9”:0,“10”:0,“11”:0,“12”:0} var res = Object.entries(obj).map(([k, v]) => ([Number(k), v])); console.log(res);

但是,如果你确定键是按递进顺序排列的,你可以使用Object。values和Array#map来做这样的事情:

var obj ={“2”,“1”:5:7,“3”:0,“4”:0,“5”:0,“6”:0,“7”:0,“8”:0,“9”:0,“10”:0,“11”:0,“12”:0}; // idx是索引,你可以使用任何逻辑来增加它(从0开始) let result = Object.values(obj)。Map ((e, idx) => ([++idx, e])); console.log(结果);

其他回答

你可以使用Object.values([]),如果你还不需要,你可能需要这个填充:

const objectToValuesPolyfill = (object) => {
  return Object.keys(object).map(key => object[key]);
};
Object.values = Object.values || objectToValuesPolyfill;

https://stackoverflow.com/a/54822153/846348

然后你可以这样做:

var object = {1: 'hello', 2: 'world'};
var array = Object.values(object);

记住,js中的数组只能使用数字键所以如果你在对象中使用了其他键那么这些键就会变成' 0,1,2…x ' '

例如,如果您有一个唯一的密钥,那么删除重复的密钥就很有用。

var obj = {};
object[uniqueKey] = '...';

在Ecmascript 6中,

var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0};

var res = Object.entries(obj);

console.log(res);

var obj = “1”:5 “2”:7, “3”:0, “4”:0, “5”:0, “6”:0, “7”:0, “8”:0, “9”:0, “10”:0, “11”:0, “12”:0 ); var res = Object.entries(obj); 游戏机。log (res);

另一个解决方案是Object。输入不适合你。

const obj = { '1': 29, '2': 42 }; const arr = Array.from(Object.keys(obj), k=>['${k}', obj[k]]); 控制台.log(到达);

你可以使用Object.keys()和map()来做到这一点

var obj = {“1”:5,“2”:7,“3”:0,“4”:0,“5”:0,“6”:0,“7”:0,“8”:0,“9”:0,“10”:0,“11”:0,“12”:0} var result = Object.keys(obj).map((key) => [Number(key), obj[key]]); 控制台.log(结果);

var obj = { "1": 5, "2": 7, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 0, "10": 0, "11": 0, "12": 0 }
let objectKeys = Object.keys(obj);

let answer = objectKeys.map(value => {
    return [value + ':' + obj[value]]
});