JavaScript Array.prototype.slice.call如何工作
Array.prototype.slice.call()
Array.prototype.slice.call() 是JavaScript中的一个方法,它用于将类数组或可迭代对象转换为真正的数组。它允许您提取数组或类数组对象的一部分并返回一个新数组。这种技术通常用于操作和处理非数组对象,将它们转换为可用的数组。
语法:
Array.prototype.slice.call( arrayLikeObject, startIndex, endIndex );
参数: 该方法接受三个参数,如上所述,并在下面进行描述:
- arrayLikeObject:要转换为数组的对象。
- startIndex(可选):此参数定义要提取部分的起始索引。
- endIndex(可选):此参数是要提取部分的结束索引(不包括结束索引)。
Array.prototype.slice.call在JavaScript中的工作原理
- 在此示例中,我们创建了一个名为’func’的函数,将字符串存储在’str’变量中。
- 我们使用’Array.prototype.slice.call’函数,并将参数传递给它作为原始字符串的初始索引和最终索引,并将结果存储在’result’变量中。
- 最后,在控制台中打印结果。
示例1:
Javascript
// Javascript program to illustrate
// use of Array.prototype.slice.call()
function func() {
// Original string
const str = "Hello,World";
// Extrating 'hello' in the form array
const result =
Array.prototype.slice.call(str, 0, 5);
console.log(result);
}
func();
输出
[ 'H', 'e', 'l', 'l', 'o' ]
解释:
- 在这个例子中,我们有一个需要处理的对象类型数组。
- 我们使用Array.prototype.slice.call函数,并将数组、初始索引和最终索引作为参数传递,并将结果存储在’result’变量中。
- 最后,我们在控制台中打印结果。
示例2:
Javascript
// Javascript program to illustrate
// use of Array.prototype.slice.call()
function func() {
// Object with integer as key
const arrayLike = {
0: 'Burger', 1: 'Pizza',
2: 'Chawmin', 3: 'Momos', length: 4 };
// Extracted array
const extractedArray =
Array.prototype.slice.call(arrayLike, 1, 3);
console.log(extractedArray);
}
func();
输出
[ 'Pizza', 'Chawmin' ]
结论: 简而言之,当你在代码中有一些不完全是数组但表现得像数组的东西(比如网页元素的集合),你可以使用Array.prototype.slice.call()来使它们像真正的数组一样工作。