我想像这样转换一个对象:
{"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中的键值对数组?
我想像这样转换一个对象:
{"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中的键值对数组?
当前回答
递归转换对象到数组
function is_object(mixed_var) {
if (mixed_var instanceof Array) {
return false;
} else {
return (mixed_var !== null) && (typeof( mixed_var ) == 'object');
}
}
function objectToArray(obj) {
var array = [], tempObject;
for (var key in obj) {
tempObject = obj[key];
if (is_object(obj[key])) {
tempObject = objectToArray(obj[key]);
}
array[key] = tempObject;
}
return array;
}
其他回答
使用对象。key和array# map方法。
Var obj = { “1”:5 “2”:7, “3”:0, “4”:0, “5”:0, “6”:0, “7”:0, “8”:0, “9”:0, “10”:0, “十一”:0, “12”:0 }; //获取所有对象属性名 var res = Object.keys(obj) //遍历它们并生成数组 . map(函数(k) { //生成数组元素 返回[+k, obj[k]]; }); console.log (res);
使用对象。以键值格式获取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);
使用for in
var obj = { "10":5, "2":7, "3":0, "4":0, "5":0, "6":0, "7":0,
"8":0, "9":0, "10":0, "11":0, "12":0 };
var objectToArray = function(obj) {
var _arr = [];
for (var key in obj) {
_arr.push([key, obj[key]]);
}
return _arr;
}
console.log(objectToArray(obj));