将数组中的项目替换为不同集合中的元素

2024-02-18

我不确定递归地处理这个问题的正确方法。 假设我有两个数组

array1 = [a, null, c, d, e]

array2 = [1, 2, 3]

我想创建一个以下形式的结果数组

[
   [a, 1, c, d, e],
   [a, 2, c, d, e],
   [a, 3, c, d, e]
]

其中第二个数组的每个元素都填充 n​​ull 的位置。我能够很好地做到这一点,但是如果我有两个 null 情况怎么办?

array1 = [a, null, c, null, e]

array2 = [1, 2, 3]

我如何获得以下内容?

[
   [a, 1, c, 1, e],
   [a, 1, c, 2, e],
   [a, 1, c, 3, e],
   [a, 2, c, 1, e],
   ...
   [a, 3, c, 3, e]
]

JavaScript 代码:

let array1 = ['a', null, 'c', null, 'e']
let array2 = [1, 2, 3]

let output = []
let cursorPosition = 0; // cursorPosition is a pointer for `array2` index
let nullPositions = []

// find nullable positions; in our case here will be 1, 4
for (let i = 0; i < array1.length; i++) {
  if (array1[i] === null) {
    nullPositions.push(i)
  }
}

// find total expected numbers of arrays from given input and create that array
const totalArray = Math.pow(array2.length, nullPositions.length);
for (let i = 0; i < totalArray; i++) {
  output.push([...array1])
}

// replacement logic for the `null` values
for (let i = 0; i < nullPositions.length; i++) {
  cursorPosition = 0;
  // frequency: how often the cursor needs to change (depends on null position)
  let frequency = totalArray / Math.pow(array2.length, i + 1);
  let resetCursorPositionOn = frequency;
  for (let j = 0; j < output.length; j++) {
    if (j < resetCursorPositionOn) {
      output[j][nullPositions[i]] = array2[cursorPosition];
    } else {
      resetCursorPositionOn += frequency;
      cursorPosition++;
      if (cursorPosition === array2.length) {
        cursorPosition = 0;
      }
      output[j][nullPositions[i]] = array2[cursorPosition];
    }
  }
}
console.log(output);

Output:

[
  ["a",1,"c",1,"e"],
  ["a",1,"c",2,"e"],
  ["a",1,"c",3,"e"],
  ["a",2,"c",1,"e"],
  ["a",2,"c",2,"e"],
  ["a",2,"c",3,"e"],
  ["a",3,"c",1,"e"],
  ["a",3,"c",2,"e"],
  ["a",3,"c",3,"e"]
]

它可以任意组合使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数组中的项目替换为不同集合中的元素 的相关文章

  • 指向特征矩阵的指针数组

    我在代码中使用 Eigen 的 MatrixXd 矩阵 在某个时刻我需要一个 3D 矩阵 由于 Eigen 没有三维矩阵类型 因为它仅针对线性代数进行了优化 因此我创建了一个 MatrixXd 类型的指针数组 Eigen MatrixXd
  • 如何从文本文件读取整数到数组

    这就是我想做的 我对此有些不满 但我希望你能容忍我 这对我来说是一个非常新的概念 1 在我的程序中 我希望创建一个包含 50 个整数的数组来保存来自文件的数据 我的程序必须获取用户的文档文件夹的路径 2 文件的名称为 grades txt
  • 如何使用 PHP 查找目录中的前 5 个文件?

    如何使用 PHP 列出按字母顺序排序的目录中的前 5 个文件或目录 Using scandir array slice array filter scandir path to dir is file 0 5 The array filte
  • Angular 4 显示其中的数据

    我不喜欢从 API 返回到我的 Angular 4 应用程序的数据 这是 JSON 的示例 我不关心美元 但这是我正在处理的数据类型 最终目标是在页面上展示 Coin Price BTC 4 281 28 ETH 294 62 etc JS
  • 迭代函数可以调用自身吗?

    当观看下面的 MIT 6 001 课程视频时 讲师在 28 00 将此算法标记为迭代 但是 在 30 27 他说这个算法和实际的 递归 算法都是递归的 该函数正在使用基本情况调用自身 那么这次迭代情况如何 private int itera
  • python array(10,1) 和 array(10,) 之间的区别

    我正在尝试将 MNIST 数据集加载到数组中 当我使用 X train y train X test y test mnist load data 我得到一个数组 y test 10000 但我希望它的形状为 10000 1 数组 1000
  • 如何初始化一个最初大小未知的数组?

    假设我有这个 int x int x State Determined By Program const char pArray const int x 在使用 pArray 之前如何初始化它 因为Array的初始大小是由用户输入决定的 T
  • 为什么 length 是 `Array` 的属性而不是 `Array.prototype` 链

    所以我在 V8 控制台上玩了很多 我做到了 Object getOwnPropertyNames 我期望得到 结果 然而 length 所以这意味着不是成为原型链的一部分 length是所有人的成员财产Array对象 这是一个错误 还是有任
  • 将 numpy 代码点数组与字符串相互转换

    我有一个很长的 unicode 字符串 alphabet range 0x0FFF mystr join chr random choice alphabet for in range 100 mystr re sub W mystr 我想
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数
  • 将 NumPy 数组按元素映射到更多维度的数组

    我想要地图anumpy array从 NxM 到 NxMx3 其中三个元素的向量是原始条目的函数 lambda x f1 x f2 x f3 x 然而 像这样的事情numpy vectorize不允许改变尺寸 当然 我可以创建一个零数组并进
  • JSON-LD 构建单个对象数组

    有没有办法将单个对象强制放入数组 每次都测试对象类型真的很烦人 我尝试了这个上下文 但它不起作用 还有JSON LD Playground 中的示例 http tinyurl com ph7p35v 通过此上下文 资源将转换为单个对象 而不
  • Clojure:只能从尾部位置重复

    我正在尝试递归地反转列表 但是我得到了Can only recur from tail position运行时 这到底意味着什么 如何改进我的代码才能使其正常工作 defn recursive reverse coll loop coll
  • VBA中的字符串是可以迭代的数组吗?

    VBA中字符串是数组吗 例如 我可以像在 C C 中那样迭代它吗 做这样的事情 char myArray 10 for int i 0 i lt length i cout lt lt myArray i VBA 中的等价物是什么 它的行为
  • 将 Excel 范围转换为 VBA 字符串

    我想将给定范围内的值转换为 VBA 字符串 其中原始单元格值由任何选定的列分隔符和行分隔符分隔 分隔符可以是一个字符或更长的字符串 行分隔符是行末尾的字符串 该字符串应该像我们从左上角 从左到右 到右下角读取文本一样完成 以下是范围 A1
  • Excel:#CALC!使用 MAP 函数计算间隔重叠时出现错误(嵌套数组)

    我正在努力解决以下公式 它适用于某些情况 但不适用于所有情况 名字input有失败的数据集 得到一个 CALC 描述 嵌套数组 错误 LET input N1 0 0 N1 0 10 N1 10 20 names INDEX input 1
  • 我在函数的最后一次递归调用中得到“方案应用程序而不是过程”

    所以这是代码 define time prime test n newline display n start prime test n runtime define start prime test n start time if pri
  • 将多维数组转换为单数组(Javascript)

    我有一个对象数组 来自 XLSX js 解析器 因此其长度和内容各不相同 表示已给予项目的资助 简化后 它看起来像这样 var grants id p 1 location loc 1 type A funds 5000 id p 2 lo
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas

随机推荐

  • 将参数传递给 data.table 聚合函数

    我有一个函数可以计算变量的加权平均值 并使用以下方法按时间段对其进行分组data table聚合语法 但是 我想以编程方式提供加权列的名称 有没有办法在仍然使用传统方法的情况下实现这一目标data table句法 功能wtmean1下面演示
  • 应用程序在后台被杀死时的应用程序生命周期

    关于我遇到的问题的一些背景 在我的应用程序中 我有一个单例对象 我经常使用它来访问网络调用的 id 和令牌等内容 有时 当应用程序在后台被终止时 这个单例就会失去其状态 但是 当应用程序再次打开并在某些情况下启动时Activity经过发射器
  • 执行shell命令(c)

    这部分代码指示我的程序 生成屏幕截图 生成命令并退出 关闭 自身 这可用于使用程序中的键切换到程序 例如生成 gimp 或用户想要使用的另一个图像编辑器 case SWITCH TO if arg char commandline 256
  • Android 单元测试的最佳实践?

    我正在开发一个移动安卓应用程序 Android 单元测试最常用的库 框架有哪些 我感觉大部分业务逻辑 数据库测试 Web服务测试都可以使用JUnit来完成 但是 测试 UI UI 工作流程等的最佳方法是什么 例如 我们如何测试Android
  • Mechanize 无法在 Google Appengine 中自动登录 Gmail

    我已经使用 mechanize 并在 GAE 上部署了一个应用程序 它运行良好 但是 对于我正在制作的应用程序 我正在尝试通过 mechanize 自动登录 Gmail 它在本地计算机上的开发环境以及部署在 appengine 上后都不起作
  • 重新定义后更新变量值

    一个新手问题给各位 R 朋友 案例场景 我定义变量A A 数字 我根据A定义其他变量 B number A 我改变A的定义 A 不同的数字 问 如何让 R 自动更新 B 的值 而不需要再次重新定义它 例如 1 A 1000 2 B A 10
  • 如何在android中使用相机捕获自定义尺寸的图像?

    如何在android中捕捉方形图像 我想在android中通过intent调用Camera来捕获方形图像 例如300x300像素 我该怎么做 编辑 自 API 级别 21 起已弃用 使用 Camera Size 嵌套类 http devel
  • java.io.EOFException 与 paho

    我想对蚊子进行压力测试 所以我创建了一些代码 如下所示 for int i 0 i lt 800 i final int j i Thread t new Thread new Runnable Override public void r
  • 为什么 Sun Java 中的 HashSet 实现使用 HashMap 作为其支持?

    查看Java 6的源码 HashSet
  • 使用 SugarORM 和 GSON 解析字符串 id

    我在用着GSON创建一个SugarRecord来自 json 响应的对象 我使用的API返回一个名为 id 的字段 但 id 的类型是字符串 而不是long 后端使用mongo 下面是我正在使用的代码 Gson gson new Gson
  • 在 xaml 中创建字典?

    伪示例
  • 使用 JodaTime Instant 与 Hibernate 进行版本控制

    Using java time Instant与 Hibernate 一起工作 我正在使用hibernate java8 给出了更多的解决方案here https stackoverflow com a 26455446 581205 使用
  • 在 BLL 中处理异常并返回给客户端(winforms 或 webforms)?

    我正在寻找进行异常处理的最佳方法 例如 当业务逻辑层中发生错误时 使用 catch 停止方法并将事件返回到表示层的最佳方法是 这个活动应该包含什么内容 或者我应该总是冒泡异常并在表示层中处理它们 任何人都有一些很好的链接 并且需要阅读有关处
  • 在 SQLite 中转义表名?

    我在 SQLite 中有一个名为 References 的表 所以我似乎无法定位它 我用 SQLite studio 编辑数据库抛出错误 有没有办法转义数据库名称 查询是 UPDATE References SET DateTimeLast
  • 如何在 C# 中创建动态设置属性名称的 JSON 对象?

    我需要返回一个 JSON 对象数组 它是 SQL 查询的结果 SQL 查询可以是任何内容 因此我需要在代码中动态创建属性名称和值 例如 从员工中选择first name last name 我想返回 data first name dave
  • Angular 2 提交后如何清除表单?

    我有一些带有模板的简单 Angular 2 组件 提交后如何清除表单和所有字段 我无法重新加载页面 设置数据后date setValue 场依然touched import Component from angular2 core impo
  • WebLogic 12 SSLKeyException:重新启动后主机名验证失败

    我在 WebLogic 12 1 2 0 0 上部署了一个 WAR 文件 应用程序通过 HTTPS 调用 Web 服务 证书导入到 DemoTrust jks 中 所有 SSL 相关设置都应该正确 实际上它可以工作 但是在服务器重新启动后
  • 动态linq:有没有办法通过索引访问对象数据?

    我需要使用 Dynamic Linq 进行一些内存中过滤 我的对象只有一个索引器 public object this int index 对我的数据的访问如下 对象 0 对象 1 所以我的查询是这样的 get FilterText fro
  • Matplotlib:个性化 imshow 轴

    我有一个结果 H ranges numpy histogram2d 计算 我正在尝试绘制它 Given H我可以轻松地将它放入plt imshow H 即可得到对应的图像 看http matplotlib org api pyplot ap
  • 将数组中的项目替换为不同集合中的元素

    我不确定递归地处理这个问题的正确方法 假设我有两个数组 array1 a null c d e array2 1 2 3 我想创建一个以下形式的结果数组 a 1 c d e a 2 c d e a 3 c d e 其中第二个数组的每个元素都