Javascript 拆分数组的数组

Javascript 拆分数组的数组,javascript,node.js,Javascript,Node.js,我有一个数组,看起来像这样 常数数据=[ ['list1'], ['item1','1'], ['item2','2'], [‘项目3’,‘3’], ['item4','4'], [' '] ['list2'], ['item1','1'], ['item2','2'], [‘项目3’,‘3’], ['item4','4'], [' '] ['list3'], ['item1','1'], ['item2','2'], [‘项目3’,‘3’], ['item4','4'], [' '] ] 您

我有一个数组,看起来像这样

常数数据=[ ['list1'], ['item1','1'], ['item2','2'], [‘项目3’,‘3’], ['item4','4'], [' '] ['list2'], ['item1','1'], ['item2','2'], [‘项目3’,‘3’], ['item4','4'], [' '] ['list3'], ['item1','1'], ['item2','2'], [‘项目3’,‘3’], ['item4','4'], [' ']
] 您可以通过对具有给定键的最后一个对象的引用使用闭包来减少整个数组

变量数据=['list1']、['item1'、['item1'、['item1'、['item2'、['item3'、['item3'、['3']、['item1'、['item1'、['item1'、['item1'、['item1'、['item2'、['item3']、['item1']、['item1'、['item1'、['item1'、'3']、['item1'、['item1'、'item1']、['item1'、['item1'、'3']、['4'、'4'、'4'、['4, 结果=data.reducefunction ref{ 返回函数r,a{ 如果1在一个{ 参考文献[a[0]]=a[1]; }如果为[0],则为else。修剪{ r[a[0]]={}; ref=r[a[0]] } 返回r; }; }未定义,{}; console.logresult;
.作为控制台包装器{max height:100%!important;top:0;}您可以通过对具有给定键的最后一个对象的引用使用闭包来减少整个数组

变量数据=['list1']、['item1'、['item1'、['item1'、['item2'、['item3'、['item3'、['3']、['item1'、['item1'、['item1'、['item1'、['item1'、['item2'、['item3']、['item1']、['item1'、['item1'、['item1'、'3']、['item1'、['item1'、'item1']、['item1'、['item1'、'3']、['4'、'4'、'4'、['4, 结果=data.reducefunction ref{ 返回函数r,a{ 如果1在一个{ 参考文献[a[0]]=a[1]; }如果为[0],则为else。修剪{ r[a[0]]={}; ref=r[a[0]] } 返回r; }; }未定义,{}; console.logresult; .作为控制台包装{最大高度:100%!重要;顶部:0;}尝试以下操作:

常数数据=[ ['list1'], ['item1','1'], ['item2','2'], [‘项目3’,‘3’], ['item4','4'], [' '], ['list2'], ['item1','1'], ['item2','2'], [‘项目3’,‘3’], ['item4','4'], [' '], ['list3'], ['item1','1'], ['item2','2'], [‘项目3’,‘3’], ['item4','4'], [' '] ]; var result={}; var lastList=null; 对于var数据项{ 如果item.length==1&&item[0]!=''{ 结果[项目[0]]=lastList={}; } 如果lastList!=null&&item.length==2,则为else{ lastList[项目[0]]=项目[1]; } } console.logresult 试试这个:

常数数据=[ ['list1'], ['item1','1'], ['item2','2'], [‘项目3’,‘3’], ['item4','4'], [' '], ['list2'], ['item1','1'], ['item2','2'], [‘项目3’,‘3’], ['item4','4'], [' '], ['list3'], ['item1','1'], ['item2','2'], [‘项目3’,‘3’], ['item4','4'], [' '] ]; var result={}; var lastList=null; 对于var数据项{ 如果item.length==1&&item[0]!=''{ 结果[项目[0]]=lastList={}; } 如果lastList!=null&&item.length==2,则为else{ lastList[项目[0]]=项目[1]; } }
console.logresult;我得到一个类型错误TypeError:如果我尝试此操作,则无法使用'in'运算符在一行中的if 1上搜索未定义的'1'。user1513388,即使在IE11中也有效,您从何处得到错误?我使用nodeJSI得到一个类型错误TypeError:如果我尝试此操作,则无法使用'in'运算符在一行中的if 1上搜索未定义的'1'。user1513388,它甚至在IE11中也能工作,你从哪里得到错误?我使用的是nodeJSShould第二个if-be-else-if?是的,这就是诀窍。这肯定比前面的答案更容易理解。唯一的问题是我的列表名和项目名可能会有所不同。i、 e.他们不会以“list”和“item”开头@user1513388编辑的解决方案有效吗?如果没有,请向我们展示您的真实数据,或者对其进行描述。更改==成为===第二个If应该是,否则如果是?是的,这就成功了。这肯定比前面的答案更容易理解。唯一的问题是我的列表名和项目名可能会有所不同。i、 e.他们不会以“list”和“item”开头@user1513388编辑的解决方案有效吗?如果没有,请向我们展示您的真实数据,或对其进行描述===