【问题标题】:Simple JavaScript Method Chaining [duplicate]简单的 JavaScript 方法链接 [重复]
【发布时间】:2016-05-16 12:22:52
【问题描述】:

我正在尝试将 Array 对象的方法链接在一起,但它不允许我这样做。

var arr = [1,2,3];
arr.splice(-3, 1, 'foot').splice(arr.length,0, 'hand');
console.log(arr) // ['foot', 2, 3]

//trying to get ['foot', 2, 3, 'hand']

这不起作用。我必须将第二个 splice 拆分为一个新语句。为什么这不起作用?我已经在 J​​avaScript 代码中看到过多次链接。

【问题讨论】:

  • hand一个小包

标签: javascript arrays chaining


【解决方案1】:

仅仅是因为Array.prototype.splice 返回一个包含已删除元素的数组,正如您可以在其documentation page 上找到的那样。

所以基本上有些方法允许链接,有些则不允许。如果是第一次使用,可以参考文档。

更准确地说,数组的大多数方法都会创建一个新数组(拼接除外),因此从技术上讲,它不是链接,因为您不会在同一数组的同一实例上应用不同的方法。典型的克隆链接方法是filtermapfind

【讨论】:

  • 我能找到一个属性来判断数组方法是否可链接吗?或者我应该假设任何返回新数组的方法都是可链接的?
  • 同样,您可以在任何数组上使用数组方法,因此如果一个方法返回一个数组,那么您可以“链接”它。但是,由于它是一个新数组,它不会总是按照您的预期进行,这就是为什么之前阅读文档(或进行一些测试)很重要的原因。例如,您确实链接了两个 splice 调用,但没有得到您期望的结果。
猜你喜欢
  • 1970-01-01
  • 2011-09-07
  • 1970-01-01
  • 1970-01-01
  • 2020-05-05
  • 2019-03-24
  • 2014-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多