二维数组的格式如下:
[["num1","num2","num3","num4"],["1","2","3","4"],["1","2","3","4"],["1","2","3","4"],["1","2","3","4"]];
要求将使用索引为0的每一项作为key值,
后面对应的位置的字符作为value。
输出的格式为:
{
num1:["1","1","1","1"],
num2:["2","2","2","2"],
num3:["3","3","3","3"],
num4:["4","4","4","4"]
}
这不就是一个二重循环的事儿吗?
前提是,大数据中每个小数组的长度是一样的(如果不一样需要做容错处理),然后把这个长度取出来作为大循环的长度。之所以这样做,是因为把结果和源数据都看作矩阵的话,它们之间是个转置的关系。
接下来,大循环只能从 1 开始,而不能从 0 开始,因为第 0 项是 key,后面的各项组合起来才是 value。这就是上面把 keys 单独取出来的原因(按正常逻辑是转置后取,对这个问题来说,转置前取更方便,而后取了之后,后面的部分就可以从 0 开始索引了)
剩下的事情就简单了,用个循环把 value 拼出来就好。
上面的代码采用了 reduce 和 map,整个过程实际是把转置和处理混在一起的。建议你自己思考一下如何按逻辑一步步来处理,不考虑优化整合的问题,用一个二重循环把它实现出来(也就是这段说明提到的思路),然后自己给自己回答个。