【发布时间】:2015-09-17 23:23:25
【问题描述】:
为什么array.slice(1, 1)/array.slice(2, 2)返回的是空数组,而原来的数组不是空的?
array = ['ele1', 'ele2', 'ele3', 'ele4', 'ele5', 'ele6', 'ele7', 'ele8', 'ele9', 'ele10’];
【问题讨论】:
-
@Ruthvik Yedla,请澄清问题。随时问。
为什么array.slice(1, 1)/array.slice(2, 2)返回的是空数组,而原来的数组不是空的?
array = ['ele1', 'ele2', 'ele3', 'ele4', 'ele5', 'ele6', 'ele7', 'ele8', 'ele9', 'ele10’];
【问题讨论】:
array.slice(1,1) 总是给你空,因为
slice() 方法选择从给定 start 开始的元素 参数,并以给定的结束参数结束,但不包括。
说明
array.slice(1,1) 将返回另一个数组,该数组将从 1 开始,并且不包括给定的结束参数,在这种情况下为 1(即,如果你结束参数是 2 那么它只会给出一个从 1 开始的元素)
【讨论】:
slice() 方法选择从给定 start 开始的元素 参数,并以给定的结束参数结束,但不包括。
这就是您收到空输出的原因。
对于给定的示例,您可以尝试:
fruits.slice(1);
因为省略了第二个参数,所以这个参数之后的所有元素都将被提取到序列的末尾。
如果你写fruit.slice(1,1),就没有什么可返回的了。
function myFunction() {
var fruits = ["Banana", " Orange", " Lemon", " Apple", " Mango"];
var citrus = fruits.slice(1);
document.getElementById("demo").innerHTML = citrus;
}
<body>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
</body>
试一试: http://codepen.io/anon/pen/JYXpjj
同时检查: Array.slice on array with one element 和 JavaScript slice method?
【讨论】: