【问题标题】:Keep duplicates in array在数组中保留重复项
【发布时间】:2015-12-16 22:28:59
【问题描述】:

我想要一个键值对数组,但可能存在重复。

意图:任务数组,每个任务有多个操作。 (我需要操作的键/值,只有那个是必需的)

现在最后一项的值一直覆盖第一个键。

我目前有这个,它解决了我的问题,但是有更好的方法吗?

[
    [
          {
            resize: [1200, 1200]
          }, {
            moveTo: "dest/nick"
          }, {
            rename: "{base}-12.{ext}"
          }, {
            toWeb: true
          }, {
            rename: "{base}.{ext}"
          }
        ], [
          {
            resize: [1000, 1000]
          }, {
            rename: "{base}-10.{ext}"
          }
        ]
      ]

resizemoveTorename 只是伪选项,还有更多。我需要重复。

编辑

这是一个配置。 (输入)有点像 json,我想。它必须被解析

编辑

上面的代码有效我只是想要一个更好的方法来做到这一点,所以我在CodeReview询问了它

【问题讨论】:

  • 数组是动态填充的吗?也就是任务是动态添加的吗?
  • 您刚刚发布了一个对象,它没有告诉我们任何有关问题的信息。如果您只是使用array.push 附加到一个数组,那么您的任务应该没有被覆盖的理由。也许您正在使用某种形式的array[key] = ...
  • @Mattias 在配置文件中定义
  • 向我们展示一些输入数据和处理输入数据的函数。
  • @JoshuaK 是输入对象

标签: javascript arrays node.js object


【解决方案1】:

也许从反面考虑更容易,首先你将如何使用它,然后你应该如何定义数据结构。

例如task[i].operation1; task[i].operation2

那么应该是:

task = [
  { resize: [1200, 1200], moveTo: "dest/nick, ..... }, 
  { resize: [1000, 1000], rename: "{base}-10.{ext}", ..... }
]

【讨论】:

  • 当我这样做时,如果我再次调整大小,它将覆盖第一次调整大小,因为它将是重复键。我需要两者,因为我需要调整大小,然后在需要时调整结果的大小。
  • 如果您可以将相应的代码块发布在您看到“重复键”的位置会更容易。我认为您对迭代数组感到困惑。
  • 我改了例子
  • @PrivatMamtora 您是否有任何理由需要多次调整大小或重命名?在这个例子中,我认为它表明了重复的第一次出现是无用的。
  • @Frederik.L 这是我能提供的最快的样本(复制粘贴)我是移动的。有多种不同的操作。有一个选项在重复时会给出不同的结果。
猜你喜欢
  • 1970-01-01
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
  • 2021-08-27
  • 2017-09-25
  • 2011-09-20
  • 1970-01-01
  • 2021-06-23
相关资源
最近更新 更多