You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从数组arr得到数组arr2?技术实现问询

数组转换实现方案

针对需求里的数组转换流程,我们可以通过三个独立函数的组合调用完成,以下是具体实现(以JavaScript为例):

1. 实现RemoveNull函数

这个函数的作用是过滤原数组中的null值,提取所有非null元素:

function RemoveNull(arr) {
  return arr.filter(item => item !== null);
}

2. 实现Encrypt函数

根据需求将过滤后的元素转换为加密格式(这里以题目中的e1、e2、e3为例,实际加密规则可根据业务需求替换):

function Encrypt(arr) {
  return arr.map((_, index) => `e${index + 1}`);
}

3. 实现Transform函数

将加密后的元素按原数组的非null位置回填,保留原数组的null位置:

function Transform(encryptedArr, originalArr) {
  let encryptIndex = 0;
  return originalArr.map(item => {
    if (item !== null) {
      return encryptedArr[encryptIndex++];
    }
    return null;
  });
}

完整调用流程

把三个函数组合起来,就能得到目标数组arr2:

const arr = [null, 2, null, 5, 4];
const _arr = RemoveNull(arr);
const _arr2 = Encrypt(_arr);
const arr2 = Transform(_arr2, arr);

console.log(arr2); // 输出: [null, 'e1', null, 'e2', 'e3']

补充说明

  • RemoveNull利用数组filter方法直接筛选非null元素,逻辑简洁高效;
  • Encrypt这里是模拟加密逻辑,实际场景中可以替换为真实的加密算法(比如哈希运算、自定义编码规则等);
  • Transform通过遍历原数组+指针跟踪的方式,确保加密元素精准回填到原数组的非null位置。

内容的提问来源于stack exchange,提问作者user13639951

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 04:10:37