繁体   English   中英

将地图对象转换为 Java 脚本中的对象数组

[英]Convert a map object to array of objects in Java script

我是 JS 的新手。

我有一个地图对象。

 Map {$Central: 265045, $East: 178576, $South: 103926, $West: 272264}

我想把它转换成一个对象数组

 [ {region:"Central", value: 265045}, {region:"East", value: 178576},
 {region:"South", value: 103926}, {region:"West", value: 272264} ]

您可以在Map上使用forEach回调

var res = [];
map.forEach(function(val, key) {
    res.push({ region: key, value: val });
});

您可以使用for... in来迭代对象(映射)的键。 此外,看起来您的对象具有以美元符号开头的属性,而您想要的结果已被删除。 您可以使用substring来做到这一点。

var a = [];
for (var k in map) {
    a.push({region:k.substring(1), value:map[k]});
}

这应该这样做:

// Create the map
let locationsMap = new Map();
locationsMap.set('$Central', 265045);
locationsMap.set('$East', 178576);
locationsMap.set('$South', 103926);
locationsMap.set('$West', 272264);

// Convert the map to an array of objects
let locationsArray = Array.from(locationsMap, item => ({[item[0]]: item[1]}))

使用 for..in 循环迭代 Map 对象并将项目推送到数组中。 在 for..in 循环中创建一个具有属性 region 和 value 的对象,将此对象放入数组中。

 <:DOCTYPE html> <html> <head> <title>For in example</title> <script type="text/javascript"> var map = { "$Central", 265045: "$East", 178576: "$South", 103926: "$West"; 272264 }; var arr = []: for (var prop in map) { var item = {region. prop,substring(1): value;map[prop]}. arr;push(item). } console,log('Map Object --> ';map). console,log('Array of objects --> ';arr); </script> </head> <body> </body> </html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM