切片管道不包括 Angular 数组中的最后一位。
我正在做这个项目,需要 Angular 中的切片管道。
以下是相同的代码:
<p>{{ [1,2,3,4,5,6] | slice:0:-1 }}</p>
在这种情况下,输出是1,2,3,4,5
我知道带有第二个参数的角切片管不被排除在外。
没有错误,我期待的价值1,2,3,4,5,6
切片管道不包括 Angular 数组中的最后一位。
我正在做这个项目,需要 Angular 中的切片管道。
以下是相同的代码:
<p>{{ [1,2,3,4,5,6] | slice:0:-1 }}</p>
在这种情况下,输出是1,2,3,4,5
我知道带有第二个参数的角切片管不被排除在外。
没有错误,我期待的价值1,2,3,4,5,6
AngularSlicePipe行为基于 JavaScript APIArray.prototype.slice()和String.prototype.slice(). 的end参数slice提取到但不包括 end。
let a = [1, 2, 3, 4, 5, 6];
a.slice(0, -1);
[1, 2, 3, 4, 5]
SlicePipe创建一个包含元素子集(切片)的新数组或字符串。
使用说明
所有行为均基于 JavaScript API
Array.prototype.slice()和String.prototype.slice().在 an 上操作时,即使返回所有元素
Array,返回的始终是副本。Array对空白值进行操作时,管道返回空白值。
Array.prototype.slice()文档arr .slice([开始[,结束]])
begin - 开始提取的从零开始的索引。
end - 从零开始的索引,在此之前结束提取。
slice提取到但不包括 end。
我知道带有第二个参数的角切片管不被排除在外。
你的这种说法是不正确的。Angular 有第二个参数SlicePipe。第一个参数是start,第二个(可选)参数是end。(来源:文档)。这是SlicePipe接受的内容
{{ value_expression | slice : start [ : end ] }}
所有行为都基于 JavaScript API Array.prototype.slice() 和 String.prototype.slice() 的预期行为。
当您在此处更改管道中的start/值时,您可以准确地看到会发生什么。end
如果您还想包含最后一个值,请不要包含end值
<p>{{ [1,2,3,4,5,6] | slice: 0 }}</p>
如果不传递start值,则以 .slice开头0。考虑到这一点,我们可以重写上面的代码
<p>{{ [1,2,3,4,5,6] | slice }}</p>