二维数组行和列的互相转换

本文详细介绍了如何将二维数组的行和列进行互换,即实现数组的转置。通过具体的示例代码,展示了利用JavaScript的map方法进行数组操作的过程。这一技巧在处理矩阵数据时尤为实用。

二维数组行和列的互相转换

 //====二维数组行和列的互相转换====
 //  [1, 1, 1, 1]
 //  [2, 2, 2, 2]
 //  [3, 3, 3, 3]
 //=======转为如下格式:========
 //  [1, 2, 3]
 //  [1, 2, 3]
 //  [1, 2, 3]
 //  [1, 2, 3]
 //=========end===========

  /*
  *  思路:
  *  1、首先把元数据的第一行拿出来循环 (第一行列的个数其实就是转换后数据的行数)
  *  2、然后在第一层循环里面再去循环整个元数据 
  *  3、在第二层循环中,取出元数据中每一行的对应的列数据 val[i] ,组成新的行返回出去
  * 
  */
  let sourcedata = [
      [1, 1, 1, 1],
      [2, 2, 2, 2],
      [3, 3, 3, 3],
  ];
  let newArr = sourcedata[0].map((item, i) => {
      return sourcedata.map((val) => val[i])
  })
  console.log(newArr)
### 二维数组与字典型的互相转换 在编程中,尤其是像 Python 这样的高级语言中,可以方便地实现二维数组与字典型结构的相互转换。以下是详细的说明以及代码示例。 #### 从二维数组到字典 当将二维数组转换为字典时,通常会假设每一的第一个元素作为键,其余部分构成对应的值表。如果存在重复键,则需要特殊处理(比如忽略或覆盖)。 ```python def array_to_dict(array): result = {} for row in array: key = row[0] value = row[1:] if key not in result: # 防止键冲突 result[key] = value return result array = [['id', 'name'], ['1', 'Alice'], ['2', 'Bob']] dictionary = array_to_dict(array) print(dictionary) # 输出 {'id': ['name'], '1': ['Alice'], '2': ['Bob']} ``` 此过程利用了Python中的`dict`数据结构来存储键值对[^1]。 #### 字典回转至二维数组 反过来,要将字典重新构建为二维数组形式也很简单。可以通过遍历字典项并将每一对映射关系转化为单独的一加入最终的结果集中。 ```python def dict_to_array(dct): array = [] for key, values in dct.items(): array.append([key] + list(values)) return array dictionary = {'id': ['name'], '1': ['Alice'], '2': ['Bob']} array = dict_to_array(dictionary) for line in array: print(line) # 输出如下几: # ['id', 'name'] # ['1', 'Alice'] # ['2', 'Bob'] ``` 这里需要注意的是,在某些情况下可能还需要考虑原始顺序保持不变等问题;然而标准库并不保证迭代过程中维持特定次序除非使用OrderedDict等替代品[^2]。 #### 总结 通过上述两种方式即可完成基本需求下的双向变换逻辑设计,并且可以根据实际应用场景调整细节以满足更复杂的要求。例如增加错误检测机制防止非法输入破坏程序稳定性等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值