Javascript 为什么要复制一个名为“quot;切片;?

Javascript 为什么要复制一个名为“quot;切片;?,javascript,Javascript,我知道草莓蛋糕的切片是什么,如果你谈论的是数据,我知道你可以将其切片,然后得到碎片或桶 但我不明白,为什么在js land中复制数据被称为“切片”。这种命名选择背后的根本原因是什么 编辑:我的麻烦是意识到“slice”这个词应该是字面意义上的(这一认识会让我觉得这个方法是超负荷的)。英语不是我的母语,很多时候,API中的措辞不应该是书面的。更准确地说,这个词可能有几个指向不同方向的含义(定义)(例如关键字“map”,它有多种含义) 编辑2:当人们谈论数据时,尤其是当数据很大时,他们通常会使用诸如

我知道草莓蛋糕的切片是什么,如果你谈论的是数据,我知道你可以将其切片,然后得到碎片或桶

但我不明白,为什么在js land中复制数据被称为“切片”。这种命名选择背后的根本原因是什么

编辑:我的麻烦是意识到“slice”这个词应该是字面意义上的(这一认识会让我觉得这个方法是超负荷的)。英语不是我的母语,很多时候,API中的措辞不应该是书面的。更准确地说,这个词可能有几个指向不同方向的含义(定义)(例如关键字“map”,它有多种含义)

编辑2:当人们谈论数据时,尤其是当数据很大时,他们通常会使用诸如“地图”、“减少”、“聚合”和“切片”之类的词。以下是pinterest的博客,他们在博客中解释了他们的大数据存储解决方案,“切片”一词的含义似乎与javascript对同一个词的想法一致:

“有数百个Hadoop作业跨多个维度分割数据,以生成跟踪我们的业务指标的报告,并生成提供给我们的服务基础架构的派生聚合。”

…这意味着,他们有一个原始的数据数组,他们将其切片以获得该数据的新副本。原作没有变异

我对术语的困惑和误解可能会被其他人分享。否则请关闭此Q。您的调用。

这是因为将从提供的起始索引到结束索引对数组进行切片


复制数组时,请使用
myArray.slice()
。这意味着您从第0个索引开始,一直到结束。制作一个大的数组切片。

事实上,
slice
的设计目的是从数组中获取一个切片。这只是一种方便的方法来标记此函数,而不是创建另一个新函数来复制整个数组

见:

不同之处在于英语术语。

复制是切片的子集

复制意味着创建一个新数组,该数组包含从开始到结束的所有元素 索引到给定数组的最后一个索引。所以它只有一个 目的

切片是将值从指定的开始索引复制到指定的最后一个索引 索引包括第一个元素和最后一个元素


我不认为这个问题有确切的答案,除非你能找到第一个决定调用这种类型操作的人
.slice()
。从逻辑上讲,你可以想象从数组或字符串中切出一块来得到它的子集,就像从蛋糕中切出一块来得到它的子集一样,但我不知道这个名字的最初原因是什么。真的吗?我同意,那会很奇怪。你确定slice没有做与其名称更相似的事情,并且复制数据只是slice提供的功能的一个子集吗?我希望与API创建者有相同想法的人能够插话告诉我,命名有一个很好的理由。通常,
slice
用于从现有数组中获取一系列元素,并将这些元素保存到新数组中。例如:
[“a”、“b”、“c”].slice(0,2)
返回
[“a”、“b”]
。因为我们知道它会创建一个新数组,所以使用
slice
创建现有数组的副本非常方便。请记住,数组是对象,它们包含引用。创建一个新数组就像创建一个新对象,所以,对您来说,整个问题是您不知道
.slice(a,b)
接受两个可选参数?请访问。制作整个数组的副本只是
.slice()
的一种可能用法。但是“slice”表示被切片的原始项发生了变化,但是我们
slice()
所使用的数组保持不变。