如何将一个数组的值解压缩到另一个数组的特定索引中?

时间:2015-07-08 13:51:46

标签: javascript meteor underscore.js lodash

我有以下代码,以便创建一个简单的机器语言命令数组。

// to ensure consistency, initialize an array of values.
var cmd = _.chunk(_.range(0, 300, 0), 30);

_.each(doses, function (dose, index) {
  // these are "headers" to the machine language instructions.
  cmd[index][0] = 1;
  cmd[index][1] = dose.number;

  // this generates the 28 commands to be executed.
  // every four blocks together represents a single command
  var commands = _.flatten(_.map(_.chunk(_.range(0, 28, 0), 4), function (day) {
    _.each(dose.wellIndexes, function (well) {
      day[well] = dose.count.value;
    });
    return day;
  }));
});

(仍为WIP代码) 使用此commands数组,我想将其值解包为cmd[index][2],以便填充数组的其余部分。这可能吗?

查看文档,我找到了merging two arrays,但这并不会替换索引后的值,只会附加到数组中。

如何在javascript中将数组值解压缩到另一个数组?

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,那么a simple mix of splice, concat and apply应该可以解决问题:

Array.prototype.splice.apply(cmd[index], [2, commands.length].concat(commands));

也就是说,如果您需要在cmd[index]数组的末尾保留一些数据。 (换句话说,从索引2开始,您的commands数组比cmd[index]的其余数组短。)如果这不是一个问题,那么只需拼接数组并将命令连接到它。