What's the point of .slice(0) here?

折月煮酒 提交于 2019-11-29 22:01:26

sort() modifies the array it's called on - and it isn't very nice to go around mutating stuff that other code might rely on.

slice() always returns a new array - the array returned by slice(0) is identical to the input, which basically means it's a cheap way to duplicate an array.

arr.slice(0) makes a copy of the original array by taking a slice from the element at index 0 to the last element.

It's also used to convert array-like objects into arrays. For example, a DOM NodeList (returned by several DOM methods like getElementsByTagName) is not an array, but it is an array-like object with a length field and is indexable in JavaScript. To convert it to an array, one often uses:

var anchorArray = [].slice.call(document.getElementsByTagName('a'), 0)

slice(0) creates a new array identical to the original array. Many a times you want to preserve your original array and create a new one.

If you use slice(1), it will create a different array starting from index position 1.

Similar things holds for strings as well.

slice(0) allows you to return an array of the existing array you're referencing, in this case namespaces.

In addition to what @Anon said:

The slice() method selects the elements starting at the given start argument, and ends at, but does not include, the given end argument.

Example1:

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);

The result of citrus will be:

Orange,Lemon

Example2:

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(-3, -1);

The result of citrus will be:

Lemon,Apple

Further information can be found here.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!