首页 > 解决方案 > 在javascript中使用带有拼接功能的apply

问题描述

我需要了解 splice 和 apply 在下面的 js 代码片段中是如何工作的。start 和 rows 是整数值,loadedBatches、virtualCars 是数组。谁能解释执行这两行后 virtualCars 会包含什么?

Array.prototype.splice.apply(virtualCars, [...[start, rows], ...loadedBatches]);
virtualCars = [...virtualCars];

标签: javascriptarrays

解决方案


in 中的第二个位置参数apply()将只是一个将提供给参数的参数数组Array.prototype.splice()。该数组起初看起来令人困惑:[...[start, rows], ...loadedBatches],但本质上是[start, rows, ...loadedBatches].

查看规格,您将:

  1. 在提供的索引处启动数组操作start
  2. rows将是参数,它确定从索引deleteCount开始从数组中删除多少项start
  3. ...loadedBatches简单地传播loadedBatches数组中的所有元素,这些元素将附加到start索引处的数组中。

换句话说,代码将:

  1. 转换virtualCars成数组
  2. 删除行数,由 的值确定rows,从 指定的索引开始start
  3. loadedBatches从指定的索引添加所有项目start

推荐阅读