Javascript 根据相关元素的数量更改数组的结构-JS
我有一个数组,我正试图用Javascript 根据相关元素的数量更改数组的结构-JS,javascript,arrays,Javascript,Arrays,我有一个数组,我正试图用SheetJs导出到excel,但在将数据结构转换为所需的数据结构时遇到了问题。 以下是所有详细信息: 页眉 ['key1', 'key2', 'key3', 'key4', 'key5', 'key6'] 我的阵型:(新阵型中有通缉位置) 想要的结果: [ {'key1': 'text1', 'key2': 'text2', 'key3': 'text3', 'key4': 'text4', 'key5': 'text6', 'key6': 'text7' }
SheetJs
导出到excel,但在将数据结构转换为所需的数据结构时遇到了问题。以下是所有详细信息: 页眉
['key1', 'key2', 'key3', 'key4', 'key5', 'key6']
我的阵型:(新阵型中有通缉位置)
想要的结果:
[
{'key1': 'text1', 'key2': 'text2', 'key3': 'text3', 'key4': 'text4', 'key5': 'text6', 'key6': 'text7' },
{'key2', 'text1', 'key2': 'text2', 'key4': 'text5'},
{'key4': 'text5'},
]
正如您所看到的,我想根据元素外观的数量重新构造元素
我甚至无法描述我在过去几个小时里尝试了什么,比如将结果转换为数组和hashmap等等,但我无法得到想要的结果。
如果我正确理解所需结果,将不胜感激。:
- 您希望基于输入对象数组创建结果对象数组
- 输入对象有一个或多个键/值对
- 结果对象是输入对象的合并结果,将重复出现的关键点放置到它们自己的对象
常量输入数组=[
{key1:'text1'},
{key2:'text2'},
{key2:'text6'},
{key3:'text3'},
{key4:'text4'},
{key4:'text5'},
{key4:'text5'},
{key5:'text6'},
{key6:'text7'}
]
常量结果数组=[];
//循环输入键/值对象
inputArray.forEach((inputItem)=>{
//在输入对象的每个键/值对上循环(看起来通常是一个)
Object.entries(inputItem.forEach)([key,value])=>{
//在结果数组中搜索不带给定键的现有对象
让outputIndex=-1;
for(设i=0;i除原始数组外,您是否还有其他信息来指示给定键/值应属于哪个结果对象?这是否只是它们遇到的顺序(即,第一个键1/2/3…转到第一个结果,下一次遇到一个键时,它转到后续结果)?谢谢你的帮助。我只需要保留键值,只需要按照我描述的顺序创建对象就行了。下面是sheetJs文档中的一个示例:var ws=XLSX.utils.json_to_sheet([{S:1,h:2,e:3,e_1:4,t:5,J:6,S_1:7},{S:2,h:3,e:4,e_1:5,t:6,J:7,S_1:8}),{header:[“S”、“h”、“e”、“e_1”、“t”、“J”、“S_1”]})
如果顺序不重要,您如何知道给定的键/值输入是哪个输出行的一部分?另外,在您想要的结果中,第一个和第二个结果都有'key2':'text2'
,第二个结果应该是'text6'
?Breliant!!非常感谢。
[
{'key1': 'text1', 'key2': 'text2', 'key3': 'text3', 'key4': 'text4', 'key5': 'text6', 'key6': 'text7' },
{'key2', 'text1', 'key2': 'text2', 'key4': 'text5'},
{'key4': 'text5'},
]