简体   繁体   English

如何将 javascript object 与 arrays 转换为具有相应名称和值的对象数组?

[英]how do you convert javascript object with arrays in to array of objects with corresponding name and value?

Fellow programmer here, for some reason I have spent two days but I cannot do this properly so help me out.这里的程序员同事,由于某种原因,我花了两天时间,但我不能正确地做到这一点,所以请帮帮我。 I have an object with arrays for each key like this:对于每个键,我有一个 object 和 arrays,如下所示:

 var arraysObject = { "North American": [ "CONUS", "NAMER", "CONUS/AK", "US-NC", "US-NE", "US-NW", "US-SC", "US-SE" ], "Oconus": [ "ALASKA", "GUAM", "HAWAII", "POLAR", "US-SAMOA" ], }

I have a list of areas that have been selected, like the following我有一个已选择的区域列表,如下所示

 var listOfAreas = ["CONUS", "GUAM","US-SAMOA"]

I want to create the following object:我想创建以下 object:

 var result = [{ "North American":"CONUS", "Oconus": "GUAM" }, { "North American": "", "Oconus":"US-SAMOA" }]

Notice how it created a new object only when that last one's key is full and fills the object if possible.请注意,仅当最后一个密钥已满并尽可能填充 object 时,它才会创建新的 object。 in my implementation it creates an object for each individual string and assigns it to the key using then pushes it using.map This doesn't work.在我的实现中,它为每个单独的字符串创建一个 object 并将其分配给密钥 using 然后使用它推送它。map 这不起作用。 I want it to fill each object accordingly and create an new object only when it is necessary.我希望它相应地填充每个 object 并仅在必要时创建一个新的 object。 Appreciate your help.感谢你的帮助。 Best, A dummy.最好的,一个假人。

You could take an object for keeping track of the indices for the keys and take a helper object for the reverted value/key relation.您可以使用 object 来跟踪键的索引,并使用帮助器 object 来还原值/键关系。

 const arraysObject = { "North American": ["CONUS", "NAMER", "CONUS/AK", "US-NC", "US-NE", "US-NW", "US-SC", "US-SE"], "Oconus": ["ALASKA", "GUAM", "HAWAII", "POLAR", "US-SAMOA"] }, keys = Object.fromEntries(Object.entries(arraysObject).flatMap(([k, a]) => a.map(v => [v, k]))), EMPTY = Object.fromEntries(Object.keys(arraysObject).map(k => [k, ''])), listOfAreas = ["CONUS", "GUAM","US-SAMOA"], indices = {}, result = []; listOfAreas.forEach(value => { const key = keys[value]; indices[key]??= 0; (result[indices[key]++]??= {...EMPTY })[key] = value; }); console.log(result);
 .as-console-wrapper { max-height: 100%;important: top; 0; }

暂无
暂无

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

相关问题 如何将{“name”:“myName”,“value”:“myValue”}对象的数组转换为“myName”的对象:JavaScript中的“myValue”对? - How do you convert an array of {“name”:“myName”,“value”:“myValue”} objects into an object of “myName”:“myValue” pairs in JavaScript? 如何将JavaScript对象数组转换为单个对象? - How do you convert an array of JavaScript objects to a single object? 如何根据某个属性将对象数组转换为 arrays 的 object? - How do you convert array of objects to object of arrays based on a certain property? Javascript:如何使用已排序的唯一数组将对象数组转换为对象? - Javascript: How convert array of objects to object with sorted unique arrays? 如何在Javascript中将对象数组转换为关联数组的对象 - How to Convert an Array of Objects into an Object of Associative Arrays in Javascript 如何将对象数组转换为 object 的 object - How do you convert an array of objects into an object of object 如何在 javascript 中将对象数组转换为 arrays 数组 - How to convert array of objects to array of arrays in javascript 如何将包含对象的对象转换为数组数组? - How to convert object containing Objects into array of arrays? 如何将具有数组作为值的对象转换为对象数组 - How to convert an object with arrays as values to an array of objects 如何将JSON对象转换为Javascript数组? - How do you convert a JSON object to a Javascript array?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM