假数组转成真数组
假数组是指在JavaScript中被误认为是数组的一些数据类型,比如类数组对象、字符串等。这些数据类型无法直接使用数组的方法和属性。
要将假数组转换为真数组,可以使用以下方法:
- 使用Array.from()方法:该方法可以将一个可迭代对象或类数组对象转换为真数组。它接受一个可选的映射函数作为第二个参数,用于对数组中的每个元素进行转换操作。
var fakeArray = {0: 'a', 1: 'b', 2: 'c', length: 3};
var realArray = Array.from(fakeArray);
console.log(realArray); // ["a", "b", "c"]
- 使用Array.prototype.slice.call()方法:该方法可以将一个类数组对象转换为真数组。它通过借用Array.prototype.slice()方法,并传入类数组对象作为this值,来将类数组对象转换为真数组。
var fakeArray = {0: 'a', 1: 'b', 2: 'c', length: 3};
var realArray = Array.prototype.slice.call(fakeArray);
console.log(realArray); // ["a", "b", "c"]
- 使用扩展运算符(...):该运算符可以将一个可迭代对象展开为多个参数,可以用于将类数组对象转换为真数组。
var fakeArray = {0: 'a', 1: 'b', 2: 'c', length: 3};
var realArray = [...fakeArray];
console.log(realArray); // ["a", "b", "c"]
需要注意的是,以上方法只能将类数组对象转换为真数组,对于字符串等其他类型的假数组,无法直接转换为真数组。对于这种情况,可以使用split()方法将字符串转换为真数组。
var fakeArray = 'abc';
var realArray = fakeArray.split('');
console.log(realArray); // ["a", "b", "c"]
``
原文地址: http://www.cveoy.top/t/topic/i0Js 著作权归作者所有。请勿转载和采集!